与jquery脚本冲突

Conflicts with jquery scripts

本文关键字:冲突 脚本 jquery      更新时间:2023-09-26

我是一名新的JQuery程序员,这是我的主代码:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
  function myfunction(){
    $("button").click(function(){
      $("p").hide();
    };
  });
  $(document).ready(myfunction);
</script>

这个脚本运行得很好,但当我在页面中添加其他三个脚本时:

<script type="text/javascript" src="/file/js/prototype.js"></script>
<script type="text/javascript" src="/file/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="/file/lightbox/js/lightbox.js"></script>

che控制台错误给了我:

 Uncaught TypeError: undefined is not a function 

在'$(document).ready(myfunction);'上线

错误是什么?是冲突问题吗?

jQuery定义了一个您正在尝试使用的名为$的函数。

js还定义了一个名为$的函数,并覆盖jQuery中的函数。

使用jQuery来引用jQuery函数,而不是$

Prototype.js还使用全局$变量。您需要使用jQuery变量来确保它们不会相互冲突:

// wrap it up
(function($) {
  function myfunction() {
    $("button").click(function(){
      $("p").hide();
    });
  };
  $(document).ready(myfunction);
})(jQuery);

您也可以用jQuery替换所有jQuery $使用的方法,但上面的方法通常更易于实现和维护。