Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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函数中使用jquery?_Javascript_Jquery_Drop Down Menu - Fatal编程技术网

在javascript函数中使用jquery?

在javascript函数中使用jquery?,javascript,jquery,drop-down-menu,Javascript,Jquery,Drop Down Menu,新手警报!(C#家伙试图学习jQuery以获得新的MVC应用程序) 我修改了在web上找到的一些代码(Stephen Walther-),并将其修改为使用jQuery而不是MSAjax库。它是一个级联下拉列表和一些虚拟数据。效果很好。接下来,我尝试将函数bindDropDownList()放入一个单独的.js文件中,以便可以重用它。然后它崩溃了,因为(我认为)函数都是jQuery调用,它只能解释javascript代码。它无法识别对象的jQuery方法。我是完全离开这里了,还是有什么诀窍可以让这

新手警报!(C#家伙试图学习jQuery以获得新的MVC应用程序)

我修改了在web上找到的一些代码(Stephen Walther-),并将其修改为使用jQuery而不是MSAjax库。它是一个级联下拉列表和一些虚拟数据。效果很好。接下来,我尝试将函数bindDropDownList()放入一个单独的.js文件中,以便可以重用它。然后它崩溃了,因为(我认为)函数都是jQuery调用,它只能解释javascript代码。它无法识别对象的jQuery方法。我是完全离开这里了,还是有什么诀窍可以让这一切顺利进行

下面是我的代码片段,它可以完美地工作。函数bindDropDownList()是第一个。如果我将其移动到自己的.js文件中并引用它,它会在第一行targetDropDownList.empty()上崩溃,错误为“object不支持此方法”


函数bindDropDownList(parentKey、allOptions、targetDropDownList){
targetDropDownList.empty();
对于(var i=0;i
jQuery方法是JavaScript方法,在定义它们之后,您可以在任何地方使用它们,我认为问题在于jQuery之前包含了您的外部文件


在使用任何库时,请确保在尝试使用其功能之前包含该库。要解决您的问题,请查看您的
顺序并进行相应调整,以便您的文件位于jQuery库之后。

我在另一个博客上找到了答案!我一直在谷歌上搜索“javascript中的jquery”之类的术语以及类似的各种派生词,但都无济于事。但后来我在谷歌上搜索了“jquery外部文件”,在这里找到了答案:

总之,除非将jquery函数包装在特殊的jquery代码块中,否则不能在外部库文件中引用该函数

(function($){  
    yourFunction = function() {  
        $("body").append('See? It works.');  
    };  
})(jQuery);

这就解决了

尼克,我相信你是对的,但我不太明白。传递给
bindDropDownList
的第三个参数已经被创建为jQuery选择,因此
.empty()
方法不可用吗?@lonesomeday-如果在包含定义了该方法的文件之前包含使用
.someMethod()
的JavaScript文件,它会爆炸…这里爆炸的不是执行,而是对脚本的初始评估,浏览器JavaScript编译器/VM/跟踪引擎试图找出代码的作用…在这种情况下,它会说“wtf就是那个方法???”..因为如果jQuery库是在…之后包含的,它还没有定义…记住每个文件都是由浏览器按顺序读取的…在这一点上,它还不知道jQuery,如果它之前没有包含的话。谢谢。不过,我还是不确定自己是否理解——我已经做到了,而且似乎对我来说效果很好。有什么区别?@lonesomeday-你的函数不在它自己的文件中:)
(function($){  
    yourFunction = function() {  
        $("body").append('See? It works.');  
    };  
})(jQuery);