2011-02-26 99 views
4

我正在写一个应用程序在使用jQuery的那一刻。它适用于使用原型的现有应用程序,所以显然我不能立即使用美元符号。JQuery - 没有冲突或关闭

我一直在使用noconflict来解决这个问题,但想不出我只是换我传递的jQuery封闭内整个脚本,如:

(function($){ 

})(jQuery); 

这似乎是工作,但如果有任何后果我想知道对此?

回答

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. 
0

这会像一个魅力,只要你不需要访问的块中定义的变量。

Jquery插件通常使用这个精确的屏蔽结构进行编码。

如果可以,请使用它来代替noConflict,因为noConflict会强制您更加注意页面中的脚本排序。

您将需要在jquery之后加载原型,以便它可以获取$符号的所有权。

0

noConflict()重置jQuery用其原始值设置的所有变量。不要说:

$(document).ready() 

你刚才说

jQuery(document).ready() 
6

您可以同时使用:

(function($){ 

})(jQuery.noConflict());