2010-08-12 53 views
0

我在我的Rails应用程序中使用jQuery。我想在我的页面中添加展开折叠文字效果。所以我下载了jQuery exapander plugin并试图使用它。我正面临一个奇怪的问题。在我的应用程序导致问题的jQuery.noConflict()方法

我的jQuery.js文件最后有这条线叫jQuery.noConflict();。我必须删除它才能使此扩展崩溃效果起作用。但是,当我删除它时,我在应用程序的其他位置使用的日历组件无法正常工作。

请帮我看看这里。

谢谢。

回答

5

noConflict()导致jQuery放弃对$变量的控制。您是否在使用$的同一页上使用另一个库?日历组件是否使用jQuery?

如果你的页面有这样的:

$.noConflict(); 

然后从这一点开始,$是不是jQuery的。所以:

$('#something').expander(); // won't work 
jQuery('#something').expander(); // will work 
$.something_from_non-jQuery_library_using_$_var(); // will work 

你也可以这样做:

jQ = $.noConflict(); 

然后:

jQ('#something').expander(); // will work 
$.something_from_non-jQuery_library_using_$_var(); // will work 
+0

除此之外,您可以将所有使用$的代码封装在一个匿名函数中,并将其作为参数使用jQuery进行调用:(function($){$('#something')。expander(); })(jQuery的); – 2010-08-12 15:17:28

+0

SWEEEEEEEEEEEEEEEEEEEEET !!它解决了我的问题! – bragboy 2010-08-12 15:35:34

0

相反的,

$('#something').show(); 

使用,

jQuery.noConflict(true); 
jQuery('#something').show(); 
相关问题