$
切换为“ jQuery”,并且一切正常,但是如果我不能解决这个问题,这将是一个混乱的脚本此脚本:
jQuery(document).ready(function(){
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
})
});
产生错误
$ is not a function
此脚本:
jQuery(document).ready(function(){
jQuery("ul.vimeo_desc_feed li a").click(function(){
alert(jQuery(this).attr('href'));
return false;
})
});
工作正常。
#1 楼
您可以将JavaScript包装在一个自调用函数中,然后使用jQuery
作为本地变量名称将$
作为参数传递给它。例如:(function($) {
$(document).ready(function(){
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
})
});
}(jQuery));
应按预期工作。
如果我没记错的话,WP提供的jQuery版本(您
wp_enqueue_script('jquery')
)立即将jQuery置于无冲突状态,从而导致$
不确定。#2 楼
您就快到了!jQuery(document).ready(function($){
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
})
});
您必须将对jQuery的引用作为
$
函数传递到您的方法中,否则它将无法正常工作。如果像我上面那样在第一个function()
调用中放入$,一切都会正常进行。评论
+1:这比将jQuery放在末尾更具可读性。
– fuxia♦
2010-10-14 17:42
...但这不是执行匿名功能的标准方法。 forum.jquery.com/topic/jquery-anonymous-function-calls
– BryanH
2010-10-14 23:55
是的,没有。它们都被认为是“标准”的方式。创建一个在本地定义了$的单例类。另一个只是为文档的ready事件定义一个处理程序,并将jQuery对象作为$传递给该处理程序。如果您尝试挂起ready事件,则第二种方法使用更广泛。如果您出于其他目的需要jQuery(例如,挂接到$ .browser),则可以使用singleton类。
–EAMann
10-10-15在1:39
+1 jQuery(document).ready(function($){...关于jQuery和WordPress的mor信息,您也可以在我的文章中阅读:wpengineer.com/2028/small-tips-using-wordpress-and-jquery。
– Bueltge
2010-10-15 12:46
#3 楼
将函数传递给jQuery是$(document).ready(...)
的简写,然后通过将$
作为回调的第一个参数,可以在该回调中为jQuery创建别名:请参阅此处的文档。
评论
啊,我明白了。我曾经手动添加它,这解释了为什么我没有遇到这个问题。
–轻度绒毛
2010-10-14 15:46
谢谢,我在开头而不是结尾使用jQuery的替代格式。但是我不知道如何返回值,在这种格式下,我只是在self-invoking函数之前添加return,并且它可以正常工作。
–eselk
15年1月15日在18:08
非常有用的答案。
– MarkSkayff
17年11月1日在20:04