2014-10-01 148 views
2

我正在使用jquery数据表加载表。为了说明这一点,我需要为小车应用程序加载原型。我把我的jQuery成无冲突模式,这下面的代码:Jquery Datatables与原型冲突

<script type="text/javascript"> 
    var $j = jQuery.noConflict(); 
    $j(document).ready(function() { 
     $j('#warranty_claim').DataTable({"bFilter": true}); 
    }); 
</script> 

我得到以下控制台错误:

(anonymous function) (index):4747 
    (anonymous function) jquery-1.2.6.min_noConflict.min.js:27 
    (anonymous function) jquery-1.2.6.min_noConflict.min.js:27 
    jQuery.extend.each jquery-1.2.6.min_noConflict.min.js:21 
    jQuery.extend.ready jquery-1.2.6.min_noConflict.min.js:27 

但是我知道我的jQuery的作品,当我执行此快速测试:

<script type="text/javascript"> 
    var $j = jQuery.noConflict(); 
    $j(document).ready(function() { 
     $j("#foo").show(); 
    }); 
</script> 

任何帮助获取数据表的工作将不胜感激。

回答

5

有可能datatables插件没有写在没有冲突的头脑中。所以,如果你需要使用插件,你应该能够轻松地将插件源代码封装在闭包中来修复它。

(function($){ 
    /* Rest of plugin source here 
    * 
    * 
    * 
    * 
    */ 
}(jQuery)) 

而实际上看数据表的源代码,它看起来像你可以修改最封闭

附近的代码的顶部

(/** @lends <global> */function(window, document, undefined) { 

成为

(/** @lends <global> */function(window, document, $, undefined) { 

}(window, document)); 

成为

}(window, document, jQuery)); 

尝试了这一点,看看会发生什么

+0

这很酷,除非你使用鲍尔 – 2014-12-05 16:47:31

3

确保您使用不具有的jQuery的datatables.min.js包括在内。

许多页面已经包含了jQuery,在这种情况下你不想再包含它。 Download Builder

+2

最后一个解决方案为我的情况。当我包含datatables.min.js时,其他几个插件崩溃了。谢谢。 – 2017-08-30 01:21:01