2015-02-07 4 views
0

Мне нужно включить prototype.js и jQuery, но это испортило мой bootstrap-select.js, похоже, из-за некоторых конфликтов.Контекст JQuery и Prototype.js

После выбора опции в списке выбора она исчезает.

Я включил эти JS файлы:

jquery-2.1.0.min.js 
bootstrap-select.min.js 
prototype.min.js 

И это в разделе <head>:

var $j = jQuery.noConflict(); 

$j(document).ready(function($) { 
    $j('.selectpicker').selectpicker(); 
}); 

И HTML:

<select class="selectpicker"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

См скрипку здесь: http://jsfiddle.net/0vh03tnn/1/

+0

Пожалуйста, включите соответствующий код в свой вопрос, а не только через внешний ресурс. Это правило в StackOverflow. – jfriend00

+0

Вы решили эту проблему? Я также включаю в себя прототип, jquery, noConflict, Bootstrap и Bootstrap. когда я отключу прототип bootstrap-select, хорошо работает. (Сам Bootstrap не имеет проблем, хотя). –

ответ

0

Попробуйте изменить порядок вещей. Сначала включите Prototype, затем jQuery, затем ваш блок с jQuery.noConflict() и, наконец, скрипт начальной загрузки. То, как я понимаю noConflict, таково: независимо от того, что связано с $, memoize, а затем создайте объект jQuery и новый, необработанный $ внутри этого объекта и, наконец, верните $ в глобальную область, из которой он должен был начаться. В порядке вещей, которые у вас есть, $ не может указывать на функцию Prototype $ в тот момент, когда noConflict делает свою вещь.

Смежные вопросы