我对JQuery有一个非常奇怪的问题,它是关于当文档准备好时启动JQuery代码的问题,因为我知道使用$(function(){//CODE});,(function($)(){//CODE}(JQuery)或$(document).ready(function(){//CODE});方法没有区别。
就像What is the difference between $(document).ready(function() and $(function() ?上说的那样
所以我喜欢总是使用$(function(){//CODE});方法,但是当我在一些页面中使用这个方法工作得很好时,但是在另一个页面中我得到了错误,比如如果我使用$.fn.extend或$.browser.msie,我会得到'$.fn is undefined‘的问题,尝试使用(function($)(){//CODE}(JQuery)和那个错误消失了,我只想知道为什么会发生这种情况,如果真的有和每个方法之间的区别!
发布于 2011-11-23 17:25:35
可能违规页面中的javascript导入正在重新定义$变量。此变量不再引用jQuery,因此出现错误。在使用(function($)(){//CODE}(JQuery)构造时,您将创建一个闭包,其中$变量再次绑定到jQuery对象,并且在该闭包中一切正常。
另一种避免问题的方法是始终使用jQuery而不是$。示例:jQuery(function(){//CODE});
发布于 2011-11-23 17:24:29
看起来当你得到这个错误的时候,你已经设置了jQuery.noConflict (或者某人已经设置了)。
$只是jQuery的别名--其他框架也使用这个别名。
使用$(function(){code}) ..or应该没有问题。jQuery(function(){code})
https://stackoverflow.com/questions/8239699
复制相似问题