jQuery noConflict:快速思考

时间:2011-11-23 16:47:09

标签: closures jquery

文档说你可以像这样使用$ .noConflict():

jQuery.noConflict();
(function($) { 
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery);
// other code using $ as an alias to the other library

它还声明调用它会返回jQuery对象的一个​​实例,所以我可以这样做:

jQuery.noConflict()(function(){
    // code using jQuery
}); 
// other code using $ as an alias to the other library

但是,这种组合有效吗?

(function($) { 
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery.noConflict());
// other code using $ as an alias to the other library

如果是这样,有没有理由不这样做?而且(如果它有效),为什么不总是使用这个方法来保证我们的闭包内部,$ == jQuery?

2 个答案:

答案 0 :(得分:5)

最后一个方法也可以 - jQuery.noConflict()返回jQuery对象,该对象作为$参数传递给函数。

我没有看到不这样做的理由,而是更喜欢其他方法。

答案 1 :(得分:5)

我不明白为什么不是jQuery.noConflict returns jQuery对象,并且在调用函数之前对其进行了评估。