如何使jQuery插件兼容而无需更改整个代码?

时间:2011-07-09 14:18:40

标签: jquery plugins compatibility

保持jQuery与其他框架兼容的常规方法是使用以下代码覆盖$ -Function:

jQuery.noConflict();    
jQuery(document).ready(function() {
      jQuery("someelement").dosomething();
    });

$j = jQuery.noConflict();    
$j(document).ready(function() {
      $j("someelement").dosomething();
    });

但是还有一种方法可以保持额外的jquery-plugins兼容而不会像上面那样改变整个$ -Function-Signs吗?

提前致谢!

丹尼

1 个答案:

答案 0 :(得分:2)

jQuery对象作为参数传递给ready处理程序,因此您可以这样做:

jQuery.noConflict();    
jQuery(document).ready(function($) {
    $("someelement").dosomething();
});

关于插件:他们应该只访问全局jQuery元素,以完全避免这些兼容性问题。

大多数插件都定义为

(function($) {
    // plugin code here
}(jQuery));

如果他们不是,那么他们的设计很糟糕。如果您有这样的插件,您应该编写它的作者来修复它。您必须更改源代码并将整个代码包装在此函数中以使其正常工作。