Jquery数据表与Prototype冲突

Mat*_*ley 2 datatable jquery prototypejs

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

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

我收到以下控制台错误:

  (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
Run Code Online (Sandbox Code Playgroud)

但是当我执行这个快速测试时,我知道我的jquery有效:

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

任何有助于使数据表工作的帮助将不胜感激.

Gee*_* 88 6

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

(function($){
  /* Rest of plugin source here
   *
   *
   *
   *
   */
}(jQuery))
Run Code Online (Sandbox Code Playgroud)

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

靠近代码顶部

(/** @lends <global> */function( window, document, undefined ) {
Run Code Online (Sandbox Code Playgroud)

(/** @lends <global> */function( window, document, $, undefined ) {
Run Code Online (Sandbox Code Playgroud)

}(window, document));
Run Code Online (Sandbox Code Playgroud)

}(window, document, jQuery));
Run Code Online (Sandbox Code Playgroud)

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