jQuery和$problems

jQuery和$problems,jquery,format,Jquery,Format,这看起来很简单,但实际上没有人用简单的英语告诉你它是如何工作的&什么时候工作的(至少在最初几个搜索引擎的页面上没有)。也许我只是在寻找正确的关键字方面做得很差劲 我已经写了将近1000行jQuery&我开始认为,如果我写得更多,它只会带来更多的麻烦,因为我可能会解决所有问题(非常非常轻的OCD[不是真的,但我喜欢顺序]——代码应该是干净的&“正确的”) 如果我将代码放入jQuery(函数($){,它将允许我使用$启动所有内容,否则我将得到“$不是函数”错误 我还注意到,一些代码最后有(jQuer

这看起来很简单,但实际上没有人用简单的英语告诉你它是如何工作的&什么时候工作的(至少在最初几个搜索引擎的页面上没有)。也许我只是在寻找正确的关键字方面做得很差劲

我已经写了将近1000行jQuery&我开始认为,如果我写得更多,它只会带来更多的麻烦,因为我可能会解决所有问题(非常非常轻的OCD[不是真的,但我喜欢顺序]——代码应该是干净的&“正确的”)

如果我将代码放入
jQuery(函数($){
,它将允许我使用
$
启动所有内容,否则我将得到“
$不是函数”错误

我还注意到,一些代码最后有
(jQuery)


有人能告诉我规则吗?如果采用不同的方法,是否会有任何影响?

您遇到的问题似乎很简单:jQuery的使用可能意味着
$
将不在全局命名空间中。要克服这一点,您可以删除对所述方法的调用,或者将代码包装在匿名函数:

(function ($) {
    //Your code
})(jQuery);
jQuery(document).ready(function($) {
    // The locally-scoped $ can be used in this function as an alias to jQuery
});

jQuery
库设置为时,通常会发生这种情况。例如
Wordpress
这样做是为了防止与其他Wordpress库的兼容性问题

如果要在
jQuery
对象可用后立即使用
$
作为
jQuery
对象的别名:

(function($) {
    // The locally-scoped $ can be used in this function as an alias to jQuery
})(jQuery);
如果要使用
$
作为带有函数的
jQuery
对象的别名,请执行以下操作:

(function ($) {
    //Your code
})(jQuery);
jQuery(document).ready(function($) {
    // The locally-scoped $ can be used in this function as an alias to jQuery
});
更新:根据您在评论中提出的问题,可以将
$(document).ready()
包装在
jQuery(function($){})
中,如下所示:

jQuery(function($) {        
    $(document).ready(function() {
        alert('in .ready() using $');
    });
});
为了使示例更全面,请参见jQuery使用
.noConflict()
释放
$
时发生的情况:

参考资料:

  • @jQuery学习中心
  • @Wordpress-Codex

你从哪里得到这个?例如wordpress?通常有两个原因导致
$
没有引用jQuery。你要么在模式下加载jQuery,要么在加载jQuery脚本之前尝试使用它。谢谢!我想知道
.ready
load
是否可以像这样在包装器中使用:
$(文档).ready(function()
?我还认为
jQuery(function($){
作为主包装器是一种完全有效的形式?那么你就不需要在最后使用
(jQuery)
了,对吧?啊,还是忘了一件事!是
jQuery().something()
如果包装到jQuery中不会导致冲突?我目前没有时间重写所有内容。简短的“是”或“否”就足够了。提前感谢!它不会导致任何冲突(但没有必要将
jQuery
包装到
jQuery
)只需包装所有内容,使新代码从一开始就保持原样&稍后我将重写
jQuery的
$的
,因为有些代码是以不同格式从这里复制的。;)干杯!