我见过一些使用jQuery.noConflict
的方法。但似乎并不总是必要的。
// define $
var $ = function() {
alert("Hello World");
};
// use $ where it's not jQuery
$();
// 1
// jQuery.noConflict();
jQuery(document).ready(function($) {
$('body').append("<p>foo</p>");
});
// 2
// jQuery.noConflict();
(function($) {
$(function() {
$('body').append("<p>foo</p>");
});
})(jQuery);
// 3
// $.noConflict() here to tell jQuery to ignore $, but we're using *jQuery* when ready
jQuery(document).ready(function() {
jQuery('body').append("<p>foo</p>");
});
// use $ where it's not jQuery
$();
jQuery.noConflict
的唯一需要是我们定义jQuery的别名
var j = jQuery.noConflict();
j(document).ready(function() {
j('body').append("<p>foo</p>");
});
那么在什么情况下(除了创建别名之外)jQuery.noConflict()
不能被省略?
答案 0 :(得分:1)
当你有单一版本的jQuery并且没有使用可能相互冲突的框架时你可以省略jQuery.noConflict(),
其他一些流行的JavaScript框架是:MooTools,Backbone, Sammy,Cappuccino,Knockout,JavaScript MVC,Google Web Toolkit, Google Closure,Ember,Batman和Ext JS。
其他一些框架也使用$字符作为快捷方式 (就像jQuery一样),然后你突然有两个不同 框架使用相同的快捷方式,这可能会导致您的 脚本停止工作。
jQuery团队已经考虑过这个,并实现了 noConflict()方法。 Reference
在JQuery文档中。
许多JavaScript库只使用$作为函数或变量名 就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,所以 无需使用$即可使用所有功能。如果你需要使用 与jQuery一起使用的另一个JavaScript库,返回$ back的控件 通过调用$ .noConflict()到另一个库。旧的参考文献 在jQuery初始化期间保存$; noConflict()只是简单地恢复 他们。 Reference
答案 1 :(得分:1)
许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。
如果您需要在jQuery旁边使用另一个JavaScript库,请通过调用$ .noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。