【问题标题】:two different .Click() functions working simultaneously and not individually - jquery两个不同的 .Click() 函数同时工作而不是单独工作 - jquery
【发布时间】:2019-09-17 18:15:56
【问题描述】:

单击过滤器选项卡时,它可以正常工作,但会在顶部滚动页面。任何人都可以看看下面的代码我在代码中做错了什么。

而 Back 2 top 功能可以正常工作。

我希望这两个功能分开工作,因为一个是图像过滤器,另一个是滚动页面回到顶部。

    <script>
        $(document).ready(function(){
            $(".button").click(function(){
                var name = $(this).attr("data-filter");
                if(name == "All"){
                    $(".filter").show("2000");
                }
                else{
                    $(".filter").not("."+name).hide("2000");
                    $(".filter").filter("."+name).show("2000");  
                }
            });
            $(".navigation a").click(function(){
                $(this).addClass("active").siblings().removeClass("active");
            });
        });
    </script>
    <script>
        $(window).scroll(function(){
            var height = $(window).scrollTop();
            if(height > 100){
                $("#Back2Top").fadeIn();
            }
            else{
                $("#Back2Top").fadeOut();
            }
        });

        $(document).ready(function(){
            $("#Back2Top").click(function(event){
                event.preventDefault();
                $("html, body").animate({scrollTop:0}, "slow");
                return false;
            });
        });
    </script>

我希望这两个函数分别运行

【问题讨论】:

  • 您是否尝试过阻止$(".navigation a").click 中的默认设置?还请提供一个minimal reproducible example 来证明问题
  • 您在谈论 2 个函数,但我看到其中 6 个函数...... 3 个在外部范围内。您指的是哪些功能?
  • 你是对的,当我在 Back2Top 按钮上计时时只有 back2top 触发器,但是当我点击图片库过滤器时,它会同时触发我如何将它分开,因此一次触发 1 个。谢谢

标签: javascript jquery html css


【解决方案1】:

是的,添加

(函数(事件){ event.preventDefault();

谢谢大家帮助我。

【讨论】:

    【解决方案2】:

    如果您对 Bact2Top 和过滤器使用相同的“按钮”类,则会发生这种情况。

    您需要为过滤器使用不同的类名。

    【讨论】:

    • 点击这里
      你好
      $(".button").click(函数(){警报(1);}); $("#test").click(function(){ alert(2); });在这里,如果我们单击“单击此处”文本,它将触发两个警报,因为它使用选择器“.button”和“#test”绑定了两个函数。但是如果我们点击“Hello”,只会触发alert 1,因为它只绑定了事件。
    • 结果是一样的
    • 能否请您修改我的代码并展示给我看,谢谢
    • 我试过更改类名,但结果还是一样。
    • 你是对的,当我在 Back2Top 按钮上计时时只有 back2top 触发器,但是当我点击图片库过滤器时,它会同时触发我如何将它分开,因此一次触发 1 个。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多