我正在编写一个使用jquery的应用程序。它适用于使用原型的现有应用程序,所以显然我不能立即使用美元符号。
我一直在使用noconflict来解决这个问题,但我无法将整个脚本包装在一个传递给jquery的闭包中,如下所示:
(function( $ ){
})( jQuery );
这似乎有效,但我想知道这是否有任何后果?
答案 0 :(得分:6)
你可以同时使用两者:
(function( $ ){
})( jQuery.noConflict() );
答案 1 :(得分: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.
答案 2 :(得分:0)
只要你不需要访问块内定义的变量,这就像魅力一样。
Jquery插件通常使用这种精确的屏蔽结构进行编码。
如果可以,请使用It而不是noConflict,因为noConflict会强迫您更多地关注页面中的脚本排序。
您需要在jquery之后加载原型,以便它可以获得$ sign的所有权。
答案 3 :(得分:0)