Как я могу удалить JQuery конфликт, когда они вызываются на той же странице из-за функции записи...?
Я новичок... я добавил два разных jQuery... один всплывающий, который вызывает файл (ajax), а другой слайдер на странице...?
я пробовал "jQuery.noConflict();" но они работают только для двух разных библиотек...?
здесь я использую только JQuery....
вот код...
<script>
/* calls the pop-up */
$(document).ready(function(){
$(".example5").colorbox();
});
/* calls the slider */
$(function(){
$('.selecter').mobilyselect({
collection: 'all',
animation: 'absolute',
duration: 500,
listClass: 'selecterContent',
btnsClass: 'selecterBtns',
btnActiveClass: 'active',
elements: 'li',
onChange: function(){},
onComplete: function(){}
});
});
</script>
`
когда я удаляю одну вызывающую функцию, другой вызываемый скрипт работает.... но когда я сохраняю оба... последний вызванный работает....
может быть, это связано с функцией записи... но я не знаю, как ее решить...?
благодаря тебе...
4 ответа
Просто объедините два:
$(document).ready(function(){
$(".example5").colorbox();
$('.selecter').mobilyselect({
collection: 'all',
animation: 'absolute',
duration: 500,
listClass: 'selecterContent',
btnsClass: 'selecterBtns',
btnActiveClass: 'active',
elements: 'li',
onChange: function(){},
onComplete: function(){}
});
});
Я бы просто поместил их в одну и ту же функцию:
$(document).ready(function(){
$(".example5").colorbox();
$('.selecter').mobilyselect({
collection: 'all',
animation: 'absolute',
duration: 500,
listClass: 'selecterContent',
btnsClass: 'selecterBtns',
btnActiveClass: 'active',
elements: 'li',
onChange: function(){},
onComplete: function(){}
});
});
Есть ли какая-то причина, по которой вы не можете этого сделать?
jQuery.noConflict()
используется, когда две разные библиотеки хотят контролировать $
(как, скажем, jQuery и Prototype... или даже две разные версии jQuery, если вы хотите этого по какой-то причудливой причине). Это не нужно, когда у вас есть два разных скрипта, использующих jQuery; по факту, jQuery.noConflict()
делает так, чтобы $
не значит jQuery
больше, и обычно будет нарушать любой сценарий, который ожидает, что сможет использовать $
(как это делают оба ваших обработчика событий). jQuery объединит обработчики так, что один будет работать за другим без необходимости делать что-то еще.
Оба сценария должны работать, если вы удалите jQuery.noConflict()
, Или, как уже упоминалось другими, объединить два в один обработчик. Они действительно не должны быть отделены в любом случае. Но тем не менее, оба должны работать нормально, если (1) ваш синтаксис правильный, (2) плагины загружены и (3) вы используете их правильно. См. http://jsfiddle.net/BeRLB/ для примера двух прекрасно взаимодействующих обработчиков событий.
Если вы на самом деле используете два разных $
библиотеки, то это становится немного сложнее. Для того, чтобы продолжить использовать $
вам нужно будет обернуть ваш код в функцию, которой вы передаете jQuery, вот так...
(function($) {
$(function() { ... });
$(document).ready(function() { ... });
})(jQuery);
Вы можете вызывать несколько функций jQuery внутри $(document).ready(function(){});
функция:
$(document).ready(function(){
$(".example5").colorbox();
$('.selecter').mobilyselect({
collection: 'all',
animation: 'absolute',
duration: 500,
listClass: 'selecterContent',
btnsClass: 'selecterBtns',
btnActiveClass: 'active',
elements: 'li',
onChange: function(){},
onComplete: function(){}
});
});