Jquery Datatables конфликтуют с прототипом
Я использую jquery datatables для загрузки таблицы. Чтобы предварить это, мне нужно загрузить прототип для приложения мини-тележки. Я помещаю свой 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 ответа
Существует вероятность того, что плагин datatables не был написан без конфликтов. Так что, если вам нужно использовать плагин, вы можете легко обернуть исходный код плагина в закрытие, чтобы исправить это.
(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));
попробуйте это и посмотрите, что происходит
Убедитесь, что в используемом вами datatables.min.js отсутствует jQuery.
На многих страницах уже будет включен jQuery, и в этом случае вы не захотите включать его снова. Скачать Builder