我在同一HTML页面上同时使用了javascript和jquery代码。由于某种原因,jQuery库正在阻止我的 native 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的别名。除了只调用一次,您真正需要做的事情就不多了。不过,如果您愿意,可以使用返回值创建自己的别名:

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都不是您想要的:
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>

关于javascript - 如何实现JQuery.noConflict()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7882374/

10-12 12:53
查看更多