在jQuery,$是jQuery的一个别名,和所有的地方,使用$也可以
替换使用jQuery,比如$(' #味精)相当于jQuery(#味精)。然而,当我们将多个js库和另一个js库中定义的符号$,我们冲突时,我们使用$象征以下是
介绍两库
文件jquery.js和prototype.js为例例。
首先,介绍了后jquery.js prototype.js,如:
在这种
情况下,我们用以下代码编写我们自己的js代码:
$(#味精)隐藏();
始终代表着美元美元符号是定义在jQuery,它也可以用jQuery(#味精)。隐藏();如果我们想使用$定义在prototype.js,我们将介绍它。
案例二:jquery.js之前引入prototype.js,如:
在这种情况下,我们用以下代码编写我们自己的js代码:
$(#味精)隐藏();
在出席这次prototype.js定义的美元符号,如果我们想打电话jquery.js工厂选择
功能,我们只能用全名jQuery(#味精)隐藏()。
在第一个js库文件
顺序的第一个介绍下,如何
正确使用在不同js库中定义的$符号。
1。使用jquery.noconflict()
该
方法的
作用是让jQuery放弃所有权和收益美元美元prototype.js的
控制,因为jquery.js介绍之后,因此有权控制的最后一件事是jQuery,它的返回值是jQuery,我们称这个方法的代码时,我们不能使用jQuery美元的方法调用。当时,$表示美元Prototype.js库中定义如下:
JQuery.noConflict();
/ /这里不再写($ #味精)(隐藏),美元符号定义在js。
JQuey(味精#)隐藏();
从此,美元是美元的定义和prototype.js美元,美元的jquery.js不能再次使用,仅以美元jquery.js美元全称jQuery。
两。自定义jQuery的别名
如果我们认为,第一种方式是使用jquery.noconflict()方法,我们只可以使用jQuery的全名是比较麻烦的。我们可以重新定义jQuery的别名:
VaR J = jquery.noconflict();
J(#味精)。隐藏(J); / /这里的jQuery的代表
此后,将是美元美元美元和定义prototype.js,美元jquey.js不能再次使用,只有使用$ J作为jQuery在jquey.js别名。
三。使用语句块,你仍然可以使用美元jquery.js定义在语句块,如下:
JQuery.noConflict();
jQuery(
文档)Ready(
函数($){)
$(#味精)。隐藏(); / /这个方法中使用的美元事件定义在jquery.js准备。
});
或使用下列语句块:
(函数($){)
的…
$(#味精)。隐藏(); / /现在使用的这一块是指在jquery.js。
}(jQuery)
如果JS库文件的第二种情况介绍了如何使用jquery.js美元,我们仍然可以使用上面描述的方法块,如:
复制代码代码如下所示:
(函数($){)
的…
$(#味精)。隐藏(); / /现在使用的这一块是指在jquery.js。
}(jQuery)
这种使用语句块的方法非常有用。当我们编写jQuery
插件时,我们应该使用这种方法,因为我们不知道如何在特定的
工作过程中引入各种js库,但是编写块的方式可以屏蔽冲突。
(函数($){ })(jQuery)
前1个(函数({)})()这种形式是
创建一个匿名方法并
执行(函数())},这是括号后面的匿名方法是立即调用该方法)。
这可以创建一个范围,以确保内部变量不与外部变量冲突,例如在jQuery中定义的变量,例如jQuery。
(功能(2美元){ })(jQuery)写作的作用主要是确保jQuery和其他库或冲突变量首先是确保jQuery变量名(jQuery内部和外部冲突的自由$和jQuery是一个名称和其他变量是两jQuery和冲突概率其他变量之间的恐惧美元非常小)和传入的匿名对象,对象
参数名匿名$(事实上,jQuery是一样的)然后你就可以自由的在(功能($){ })(jQuery)写插件,你不需要考虑是否有是一个冲突与外部世界的变