金星?行
我有一个类似的问题。你的问题不是 jQuery.noConflict();它也不是原型 js,而是您没有将所有内容添加到 noconflict
1 - 首先对齐所有其他不使用 jquery ex 的库:
<script src="js/scriptaculous/lib/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous/src/scriptaculous.js" type="text/javascript"></script>
<script language="javascript" src="js/protoplasm/protoplasm.js"></script>
<script>
Protoplasm.use('rte').transform('textarea.richeditor');
</script>
2 - 之后插入您的 jquery 文件并在使用 jquery 的任何其他库或代码之前直接跟进 noconflict
<script type="text/javascript" src="js/jquery/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
$.noConflict();
</script>
3 - 最重要的是,这就是您遗漏重点的地方
打开你拥有的每一个其他javascript代码作为使用jquery的js,如Bootstrap.min.js或app.js,如果你在里面找到jquery,然后放在代码的顶部,在文件的开头(例如在bootstrap.min.js 的开头)下面的代码
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
///////////////////////////////////////////////////////////////////////////////
4- 在代码的最后(例如 bootstrap.min.js 的末尾)输入以下代码
///////////////////////////////////////////////////////////////////////////////
});
5 - 将所有其他使用 jquery 的代码放在另一个页面之间
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
});
如您所见,仅 jquery noconflict 是不够的。如果您不想受到任何干扰,您真的必须在任何使用 jquery 的地方添加这些代码,即使在外部文件中也是如此
您可能会在使用 firebug 的 controls.js 中遇到一些错误,但您的所有代码都可以正常工作。即使你删除了 control.js,只要你的页面上有 scriptaculous.js,Firebug 总会给你和 TypeError 之类的错误:this.element is null controls.js 但你所有的代码都可以正常工作。
请不要忘记金星。谢谢