我在同一HTML页面上同时使用了javascript和jquery代码。由于某种原因,jQuery库正在阻止我的本机javascript代码正常工作。
我找到了此页面:jQuery No Conflict,它表明您可以使用jquery.noConflict将$释放回javascript。但是,我不确定该怎么做?
具体来说,我不确定如何正确执行此操作?Jquery代码在哪里,JS代码在哪里?
我的代码如下:
<script type="text/javascript"> $.noConflict(); // Code that uses other library's $ can follow here. </script>
jQuery.noConflict将重置$变量,因此它不再是的别名jQuery。除了只调用一次,您真正需要做的事情就不多了。不过,如果您愿意,可以使用返回值创建自己的别名:
jQuery.noConflict
$
jQuery
var jq = jQuery.noConflict();
而且,通常,您希望在包含jQuery和任何插件之后立即执行此操作:
<script type="text/javascript" src="/path/to/jquery.js"></script> <script type="text/javascript" src="/path/to/jquery-plugin.js"></script> <script type="text/javascript"> jQuery.noConflict(); // Code that uses other library's $ can follow here. </script> <script type="text/javascript" src="/path/to/prototype.js"></script>
您还可以走得更远一步,腾出jQuery用noConflict(true)。但是,如果采用这种方法,您肯定会想要一个别名,因为它既不是$也不jQuery是您想要的:
noConflict(true)
var jq = jQuery.noConflict(true);
我认为最后一个选项主要用于混合版本的jQuery,尤其是当您想更新jQuery本身时用于过时的插件:
<script type="text/javascript" src="jquery-1.4.4.js"></script> <script type="text/javascript" src="jquery-older-plugin.js"></script> <script type="text/javascript"> var jq144 = jQuery.noConflict(true); </script> <script type="text/javascript" src="jquery-1.6.4.js"></script> <script type="text/javascript" src="jquery-newer-plugin.js"></script>