Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么。在can';在my$(document).ready()函数中是否不能使用?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么。在can';在my$(document).ready()函数中是否不能使用?

Javascript 为什么。在can';在my$(document).ready()函数中是否不能使用?,javascript,jquery,Javascript,Jquery,该页面可在以下位置查看: 加载Firebugs时,会出现以下错误: TypeError: $(".open_gene").on is not a function [Break On This Error] $(".open_gene").on('change', function(event) { 但是,如果我在Firebug的控制台中键入此表达式,则可以将其作为函数进行计算,而不会出现任何问题: >>> $(".open_gene").on function()

该页面可在以下位置查看:

加载Firebugs时,会出现以下错误:

TypeError: $(".open_gene").on is not a function
[Break On This Error]   

$(".open_gene").on('change', function(event) {
但是,如果我在Firebug的控制台中键入此表达式,则可以将其作为函数进行计算,而不会出现任何问题:

>>> $(".open_gene").on
function()
我想知道是什么原因导致了这个问题。 有人对此有想法吗?谢谢

可从jQuery v1.7获得,您的站点中有1.6.4版

编辑

在html中加载1.6.4版,然后再加载javascript中的1.7.2版,但bindingssites.js在1.7.2版之前加载,因此
.on()
在当时不可用,但在控制台中稍后才可用。我建议将jquery回退加载程序放在第一个jquery脚本之后

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
    function check_jquery() {
        //console.log('jquery');
        var jquery = window.$ || window.JQuery;
        //console.log('jquery: '+(jquery?(jquery.fn?jquery.fn.jquery:'null'):'null'));
        if (jquery === undefined || jquery.fn.jquery !== '1.7.2') {
            mygene.loadfile(mygene.url_root + 'js/jquery-1.7.2.min.js', 'js', check_jquery_ui);
            //console.log('jquery: loaded');
        } else {
            check_jquery_ui();
        }

    };
    check_jquery();
</script>

函数检查{
//log('jquery');
var jquery=window.$| | window.jquery;
//log('jquery:'+(jquery?(jquery.fn?jquery.fn.jquery:'null'):'null');
if(jquery==未定义| | jquery.fn.jquery!=='1.7.2'){
mygene.loadfile(mygene.url\u root+'js/jquery-1.7.2.min.js','js',check\u jquery\u ui);
//log('jquery:loaded');
}否则{
检查jquery\u ui();
}
};
检查jquery();

您正在加载非常旧版本的jQuery(1.6.4)<直到1.7版本才添加了code>on()。

您正在加载两个版本的jQuery:1.6.4和1.7.2。您正在加载1.6.4之后的1.7.2


在失败的上下文中,它使用的是1.6.4,但在打开Firebug时,它使用的是更晚加载的1.7.2。

您运行的是哪个版本的jQuery?如果它早于1.7,
.on()
不存在。谢谢,穆萨!另一个问题是为什么我可以在
firebug
中使用
.on()
?firebug是否具有最新的
jquery
内置功能?因为当您这样做时,jquery 1.7已从加载。您正在加载两个版本的jquery。内联JavaScript对jquery 1.7进行异步加载,因此在加载之前处理将继续,但在使用控制台时,处理将可用。