JQuery - 没有冲突或关闭

Dav*_*vid 4 jquery

我正在编写一个使用jquery的应用程序.它适用于使用原型的现有应用程序,所以显然我不能立即使用美元符号.

我一直在使用noconflict解决这个问题,但我无法将整个脚本包装在一个传递给jquery的闭包中,如下所示:

(function( $ ){

})( jQuery );
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但我想知道这是否有任何后果?

gio*_*_13 6

你可以使用两者:

(function( $ ){

})( jQuery.noConflict() );
Run Code Online (Sandbox Code Playgroud)


Jon*_*ter 1

这应该可以正常工作,因为您将 jQuery 作为 jQuery 对象本身传递到闭包中。

不过,仍应指定 noConflict - 否则 jQuery 对象可以控制美元符号。调用 noConflict 将美元符号传递回任何已经使用它的东西。

文档也表明了这一点:

  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });
  // Code that uses other library's $ can follow here.
Run Code Online (Sandbox Code Playgroud)