我如何才能准确地找出两个jquery脚本之间的冲突

How can I find out what precisely is the conflict between 2 jquery scripts?

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

我正在Shopify平台上构建一个网站,在一个页面上发生了javascript冲突。我不知道如何找出冲突的确切原因——如果能提供任何关于如何找出冲突原因的信息,我将不胜感激!

要点如下:

这是我用作测试页面的页面。除非我将scripts.js静音,否则同位素脚本过滤器上的点击函数不会起任何作用。

这来自有问题的html文件:

  <!-- conflict!
  << path to 'scripts.js' >>
  -->
  <!-- Begin Isotope -->
  << path to 'jquery.isotope.min.js' >>
  <script>
    $(window).load(function(){
      var $container = $('#isocontainer'),
          $filterLinks = $('#isofilters a');
      $container.isotope({
        itemSelector: '.item',
        filter: '*'
      });
      $filterLinks.click(function(){
        var $this = $(this);
        // don't proceed if already selected
        if ( $this.hasClass('selected') ) {
          return;
        }
        $filterLinks.filter('.selected').removeClass('selected');
        $this.addClass('selected');
        // get selector from data-filter attribute
        selector = $this.data('filter');
        $container.isotope({
          filter: selector
        });
      });
    });
  </script>
  <!-- End Isotope --> 

我很乐意提供任何关于如何找出具体冲突的提示。如果我需要提供更多/不同的信息,请告诉我。

谢谢,Alex

是否首先加载JQuery?

我的猜测是在Scripts.Js文件中使用$运算符有问题。有理由使用Jquery(窗口)吗。。。。超过$(窗口)?与Jquery(文档).ready(..超过$(文档).eady(…?)相同

您应该能够只使用$而不是JQuery。

我不能完全理解你的问题。我认为你的jquery脚本与其他库冲突。如果这是问题所在,请检查下面的脚本

var hack = $.noConflict();

在脚本中使用$的每个部分使用hack而不是$。

问候