Jquery数据表与Prototype冲突

时间:2014-10-01 17:15:38

标签: jquery datatable prototypejs

我正在使用jquery数据表来加载表。为了序言,我需要为迷你车应用程序加载原型。我使用以下代码将我的jquery置于无冲突模式:

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

非常感谢任何使数据表工作的帮助。

2 个答案:

答案 0 :(得分:6)

有可能数据表插件没有写入时没有冲突。因此,如果您需要使用该插件,您应该能够轻松地将插件源代码包装在一个闭包中以修复它。

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

实际上看一下datatables的源代码,看起来你可以修改最外面的闭包

靠近代码顶部

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

变为

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

}(window, document));

变为

}(window, document, jQuery));

尝试一下,看看会发生什么

答案 1 :(得分:3)

确保您使用的datatables.min.js不包含jQuery。

  

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

相关问题