JQuery and Prototype.js conflict



我需要包含prototype.js和jQuery,但由于一些冲突,这似乎打乱了我的bootstrap-select.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/

试着颠倒事物的顺序。首先包括Prototype,然后是jQuery,然后是使用jQuery.noConflict()的块,最后是引导脚本。我理解noConflict的方式是:无论$绑定到什么,都要对其进行记忆,然后在该对象中创建一个jQuery对象和一个新的、未受约束的$,最后将$从最初的状态返回到全局范围。按照这里的顺序,在noConflict执行其操作时,$可能不会指向Prototype$函数。

最新更新