首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$(function(){});,(function($)(){}(JQuery);和$(document).ready(function(){});有区别吗?

$(function(){});,(function($)(){}(JQuery);和$(document).ready(function(){});有区别吗?
EN

Stack Overflow用户
提问于 2011-11-23 17:20:05
回答 2查看 98关注 0票数 1

我对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)和那个错误消失了,我只想知道为什么会发生这种情况,如果真的有和每个方法之间的区别!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-23 17:25:35

可能违规页面中的javascript导入正在重新定义$变量。此变量不再引用jQuery,因此出现错误。在使用(function($)(){//CODE}(JQuery)构造时,您将创建一个闭包,其中$变量再次绑定到jQuery对象,并且在该闭包中一切正常。

另一种避免问题的方法是始终使用jQuery而不是$。示例:jQuery(function(){//CODE});

票数 2
EN

Stack Overflow用户

发布于 2011-11-23 17:24:29

看起来当你得到这个错误的时候,你已经设置了jQuery.noConflict (或者某人已经设置了)。

$只是jQuery的别名--其他框架也使用这个别名。

使用$(function(){code}) ..or应该没有问题。jQuery(function(){code})

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8239699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档