为什么jquery / javascript代码与其他jquery / javascript冲突?

时间:2012-02-17 07:40:49

标签: javascript jquery

在使用jquery或javascript代码时,大部分时间我都要面对jquery或javascript冲突的问题。

我仍然没有理解为什么这些东西会与其他代码发生冲突?

有人对此有任何想法吗?

任何解决方案,以便下次在项目开发时不会发生此问题。

我有一个解决方案来阻止jquery文件的冲突,

    <script>
    var j$=jQuery.noConflict();
    </script>

但是这段代码一直没有用。

3 个答案:

答案 0 :(得分:6)

如果您正在使用另一个使用$ variable的JavaScript库,则可能会遇到与jQuery的冲突。为了避免这些冲突,您需要在将jQuery加载到页面之后以及尝试在页面中使用jQuery之前立即将jQuery置于无冲突模式。

方法1:

  

当您将jQuery置于无冲突模式时,您可以选择指定变量名称来替换 $ 。 (只有一次)

<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>var $j = jQuery.noConflict();</script> 

方法2

  

您可以通过将代码包装在一个中继续使用标准$   自动执行匿名功能;这是一个标准模式   插件创作,作者无法知道是否有另一个库   将接管$。

<script src="jquery.js"></script>
<script>
jQuery.noConflict();

(function($) {
   // your code here, using the $
})(jQuery);
</script>

方法3:

使用jQuery代替$

没有其他方法可以做到这一点 reference

答案 1 :(得分:1)

对于jQuery,它在noConflict的API页面中进行了解释;基本上,许多JS框架使用$作为函数名,因此如果使用多个JS框架,它们可能会发生冲突。无论如何它不应该。

答案 2 :(得分:1)

尝试将其放在标题中:

<script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js">   </script>

尝试在DOM准备就绪时发出提醒,如果没有冲突则发现提醒

<script>
$(document).ready(function () {
alert("Hello!");
});
</script>

我有冲突试试这个:

<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>