首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现JQuery.noConflict()?

问如何实现JQuery.noConflict()?
EN

Stack Overflow用户
提问于 2011-10-25 05:45:32
回答 13查看 133.4K关注 0票数 27

我在同一个html页面上同时使用了javascript和jquery代码。由于某些原因,jQuery库阻止了我的原生javascript代码正常工作。

我找到了这个页面:jQuery No Conflict,上面说您可以使用jquery.noConflict将$释放回javascript。但是,我不确定该怎么做?

具体来说,我不确定如何正确地实现这一点?Jquery代码放在哪里,JS代码放在哪里?

我的代码如下:

代码语言:javascript
复制
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2011-10-25 06:04:35

jQuery.noConflict将重置$变量,使其不再是jQuery的别名。除了调用它一次之外,你不需要做太多其他的事情。不过,如果您愿意,您可以使用返回值创建自己的别名:

代码语言:javascript
复制
var jq = jQuery.noConflict();

通常,在包含jQuery和任何插件后,您希望立即执行此操作:

代码语言:javascript
复制
<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>

您还可以更进一步,使用noConflict(true)释放jQuery。但是,如果您采用这种方法,您肯定会需要一个别名,因为$和jQuery都可能不是您想要的:

代码语言:javascript
复制
var jq = jQuery.noConflict(true);

我认为最后一个选项主要用于混合版本的jQuery,特别是当你想要更新jQuery本身时,特别是对于过时的插件:

代码语言:javascript
复制
<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>
票数 39
EN

Stack Overflow用户

发布于 2011-10-25 05:49:02

默认情况下,jquery使用变量jQuery,为了方便起见,使用了$。如果你想避免冲突,一个不错的方法是这样封装jQuery:

代码语言:javascript
复制
(function($){

    $(function(){

        alert('$ is safe!');

    });

})(jQuery)
票数 13
EN

Stack Overflow用户

发布于 2011-10-25 05:48:58

如果我没记错的话:

代码语言:javascript
复制
var jq = $.noConflict();

然后你可以用jq.(随便什么)来调用jquery函数。

代码语言:javascript
复制
jq('#selector');
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7882374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档