JQuery和Prototype.js冲突

时间:2015-02-07 20:39:02

标签: jquery twitter-bootstrap prototypejs bootstrap-select

我需要包含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/

1 个答案:

答案 0 :(得分:0)

尝试颠倒事物的顺序。首先包括Prototype,然后是jQuery,然后是jQuery.noConflict()的块,最后是bootstrap脚本。我理解noConflict的方式是这样的:无论$绑定,记住它,然后在该对象内创建一个jQuery对象和一个新的,未受约束的$,最后将$返回到全局范围。根据你在这里所做的事情的顺序,在noConflict做它的时候,$可能不会指向Prototype $函数。