Click事件在函数内多次调用

时间:2017-10-14 19:51:39

标签: javascript jquery html

我已经创建了用于触发一些点击事件的代码。这些事件就像使用函数嵌套一样。当我单击按钮时,多次调用click事件。

对于Ex。我有一个按钮(b1)打开侧边栏(已隐藏)。我还有另一个按钮(b2),它位于侧边栏中。当我打开侧边栏并第一次点击b2时,它的工作正常,即它正在调用一次。但是,当我关闭侧边栏并使用b1再次打开侧边栏并单击b2时,单击事件触发两次。同样,它会根据侧栏打开使用b1多次触发。每次点击b1时触发器都会增加 以下是我的代码:

<button class="b1">Show Sidebar</button>
<button class="b3">Hide Sidebar</button>
<div class="sidebar">
    <input type="text" class="demo">
    <button class="b2">Triggers</button>
</div>
<script>
    function getSidebarEvents() {
        $('.b2').click(function(){
            console.log('Triggering Multiple times');      
        });
    }
    $('.b1').click(function() {
       //Do something to open sidebar
       getSidebarEvents(); 
    });
    $('.b3').click(function() {
       //Do something to close sidebar
    });
</script>


我知道我的函数在每次点击b1时多次调用,然后单击b2的事件正在初始化多次。但我无法改变这种结构,因为我的代码现在已经很大了。我需要一些小的改动来帮助我解决这个问题。

1 个答案:

答案 0 :(得分:2)

您应该将click事件处理程序分配给函数外部,如此。现在 if 你要模拟该函数内部的点击,只需调用click事件。

$wp_query_obj->set('cat', '2,3' );