2015-05-08 2 views
0

У меня есть плагин автозаполнения (jquery.autocomplete.js), и я использую карусель jQuery, а также я использую некоторые компоненты бутстрапа. Но когда я добавляю bootstrap.min.js и jquery-1.11.3.min.js, плагин автозаполнения не работает. Как я могу заставить его работать?Как избежать конфликтов jQuery между двумя плагинами

автозаполнения работает отлично от jQuery 1.2.6 - New Wave Javascript

+1

JQuery в версии 1.2.6 является очень старым. Вы пытались использовать версию 1.11.3 с новой версией плагина Autocomplete? – Regent

ответ

2

При загрузке вашего jQuery.x.x.js, он будет перезаписывать существующий $ и Jquery варов. НО он сохраняет их резервную копию (в _$ и _jQuery). Вызов noConflict (правда) вы восстанавливаете ситуацию, как это было до вашего включения js!

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

Возобновление:

  • исходная страница загружает его «jquery.versionX.js»
  • $ и Jquery принадлежат versionX
  • вы называете "jquery.versionY.js"
  • теперь $ и Jquery принадлежат versionY, плюс _ $ и _jQuery что принадлежит в versionX
  • var my_jQuery = jQuery.noConflict(true);
  • Теперь $ и jQuery принадлежат versionX, _$ и _jQuery, вероятно, нулевой, и my_jQuery является versionY

Если вы хотите вернуться к конкретной версии добавить следующий код JavaScript в HTML ,

<script type="text/javascript"> 
    if (jQuery.fn.jquery != "1.11.0") 
     var jQuery_1_11_0 = $.noConflict(true); 
</script> 

https://stackoverflow.com/a/30101470/2025923