Конфликт между страницами на простых вкладках Jquery, попытка решить с помощью jquery noconflict

У меня есть простая страница вкладок с тремя разными страницами (TAB1, TAB2, TAB3).

Tab.php

Вкладка1|Вкладка2|Вкладка3

// Tab1 имеет плагин слайдера (с пользовательским интерфейсом Jquery) // Tab2 имеет автозаполнение для списка выбора

Конфликт возникает из-за того, что две функции хотят использовать переменную jquery.

Две страницы содержат плагины jquery, но только с версией jquery (jquery-1.11.1.min.js)

Вкладки работают правильно (элементы отображаются, методы jquery работают правильно), когда включена только одна вкладка (просто комментирует ссылку).

Я использую jquery без конфликта, чтобы попытаться решить эту проблему (до этого был конфликт между главной вкладкой и отдельной страницей):

<script type="text/javascript" src="jquery-1.11.1.min.js"></script>     
<script type="text/javascript">   
 var s = $.noConflict();
</script>    

Итак, на подстранице (вкладка 1) я использую как:

s(document).ready(function(){.....}

Я также пытаюсь определить второй ярлык (сначала я тоже пытаюсь использовать тот же «s»):

<script type="text/javascript" src="jquery-1.11.1.min.js"></script>     
<script type="text/javascript">     
var j = $.noConflict();
 var s = $.noConflict();
    </script> 

использовать это на странице Tab2. Это не было решением для меня. Diseable Tab1 и использование «j» также хорошо работает.

Еще одна важная вещь - это первая загруженная страница, отображаемая каждый раз правильно, поэтому я знаю, что конфликт возникает из-за переменной jquery (перезаписать ее или что-то в этом роде).

Я пытаюсь найти решение самостоятельно, но я не смог. Пожалуйста, помогите мне.

  • Обновление1:

Как я уже отмечал, перед этим я провел много исследований: вкладки Jquery, конфликтующие с ползунком Revolution< /а>

Этот вопрос очень похож на мою проблему, но разница в том, что у меня больше вкладок, больше конфликтов, поэтому я подумал, что если я использую больше ярлыков, это решит проблему.

  • Обновление 2: плагины больше мешают, чем конфликтуют. с использованием

    var s = $.noConflict(true);

полностью выбросить всю страницу, даже вкладки не хотят работать. Сначала загружается tab.php, он использует глобальную переменную jquery, а затем, если я нажимаю на Tab1, он также хочет использовать глобальную переменную. После того, как я нажму на Tab2 тоже нужна переменная jquery Так что бомж интерференция готова

  • Обновление 3: после долгих исследований я обнаружил, что проблема не в отсутствии конфликтов. Страница Tab2 (upload.php) отображается правильно, когда я полностью перезагружаю страницу.

    s(document).ready(function(s) {//without the ready it does not rendered even after F5 
    

    s("#модель").select2(); });


person Andrewboy    schedule 18.10.2014    source источник
comment
до сих пор не ясно, почему вы используете noConflict. Вы уверены, что вам нужно его использовать? Если да, то почему?   -  person charlietfl    schedule 18.10.2014
comment
без него подстраницы не работают (у него есть другие плагины jquery, и есть проблемы с главной страницей вкладок и подпрограммами). Таким образом, с помощью noconflict я смог заставить его работать на подстранице и на главной вкладке.   -  person Andrewboy    schedule 18.10.2014


Ответы (1)


Я считаю, что вы пытаетесь загрузить jQuery с другим именем переменной. Я бы посоветовал вам использовать:

$.noConflict();
jQuery( document ).ready(function( blah ) {
    //You can now use blah as the jquery method (e.g. blah("#button").click();)
});

Я сделал пример здесь: http://jsfiddle.net/me66st8w/. Вы можете узнать больше об этом в официальной документации здесь: http://api.jquery.com/jquery.noconflict/.

person Matt Brown    schedule 18.10.2014
comment
а как насчет этого: бла(функция( бла ){//до того, как это было //s(document).ready( function() {$(function( $ ){ jvar('#tab-container').easytabs({ анимация: ложь, }); - person Andrewboy; 18.10.2014
comment
Нет, вы должны использовать метод jQuery до тех пор, пока не определите его внутри 'ready(function(...))' (где... — новое имя функции jQuery) - person Matt Brown; 18.10.2014
comment
извините, это была не та душа, которую я много пробовал. Как я писал в update3, страница правильно отображается после refredh (F5) - person Andrewboy; 23.10.2014