2014-10-01 145 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