我知道这个问题已被多次询问了,我已经搜索了stackoverflow和google的答案但是没有一个能为我工作,所以也许我的错误是在不同的领域引起的,反正这里是我的javascript包括
echo "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></script>\n";
echo "<script type=\"text/javascript\" src=\"javascript/watermark.min.js\"></script>\n";
echo "<script type=\"text/javascript\" src=\"javascript/jquery.cycle.js\"></script>\n";
echo "<script type=\"text/javascript\" src=\"http://vjs.zencdn.net/c/video.js\"></script>\n";
echo "<script type=\"text/javascript\" src=\"javascript/prototype.js\"></script>\n";
echo "<script type=\"text/javascript\" src=\"javascript/scriptaculous.js?load=effects,builder.js\"></script>\n";
echo "<script type=\"text/javascript\" src=\"javascript/lightbox.js\"></script>\n";
echo "<script type=\"text/javascript\" src=\"javascript/jquery.userdrive.js\"></script>\n";
每当我在jQuery库之后放入prototype.js,scriptaculous.js和lightbox.js时,我的用户驱动程序都不起作用,而且当我把它放在之前时,它可以工作但不完全。我知道$符号之间存在冲突,但我不知道如何解决这个问题。此外,我的userdrive包括ajax调用和可排序网格的代码。
答案 0 :(得分:2)
使用noConflict功能:
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>
确保在此代码之前包含jQuery库,这是一个文档:
答案 1 :(得分:1)
如果你的userdrive.js使用没有闭包的全局变量“$”,它将失败,因为prototype.js删除了“$”和“jQuery”之间的链接
这是一个clousure:
(function($){
...
})(jQuery)
尝试将您的userdrive放入闭包中,并使用noConflict方法来防止其他错误。
<script type="text/javascript">
jQuery.noConflict();
</script>