jQuery与prototype.js冲突:日历图标没有弹出

jQuery conflict with prototype.js: Calender icon is not popping up

本文关键字:图标 日历 prototype js 冲突 jQuery      更新时间:2023-09-26

我已经使用jQuery编写了一些逻辑。为了工作,我需要放置:

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>

但如果我把它放在那里,那么我的日历图标就不会弹出。但如果我去掉,逻辑就不会起作用。我该怎么办?

确保jQuery是第一个。。。

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>
<script>$.noConflict();</script>

然后在使用jQuery的代码中使用jQuerywindow.jQuery,而不是原型使用的$

如果你需要的话,你也可以把生命包裹起来…

(function(w,$){
    //in here $ is jQuery, w.$ is prototype
}(window, jQuery))

要解决jQueryprototype.js之间的冲突,您需要将jQuery分配给新的限定变量,使其处于No-Conflict模式,如下所示:

/* Add prototype.js before jQuery */
<script src="prototype.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>
/* Assign jQuery to qualified var */
var jQuery_1.11.3 = jQuery.noConflict();
/* Use in your code */
jQuery_1.11.3(document).ready(function() {
    // Your jQuery dependent code.
});

或者,您可以在prototype.js之前包含jQuery,并为您的逻辑使用完整的jQuery关键字,如下所示:

/* Include jQuery before prototype.js */
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>
<script src="prototype.js"></script>  
/* Use full jQuery var name to reference jQuery */
jQuery(document).ready(function() {
    // Your jQuery dependent code.
});

参考