停止触发器功能在Jquery中多次运行

时间:2016-03-13 06:12:01

标签: javascript jquery eventtrigger

由于某种原因,我的触发功能(即使被调用一次)多次运行触发器。

以下是代码: -

input.sort_by.with_index do |piece, index|
  index%3
end

&#34>点击&#34>会发生什么?当" touch"触发一次触发一次时,函数会多次运行功能

任何方式,我可以强制它运行一次?

感谢。

2 个答案:

答案 0 :(得分:1)

触摸元素后,

click会被触发,无论您是否在touchstart上触发它。所以,因为你在touchstart上触发它,它会触发两次。你可以这样做:

此处示例:JS Fiddle

$('.video-section ul li a').on('click touchstart', function(e){ 
    e.preventDefault();

    if(e.type == "touchstart") {
       console.log("touchstart event");
       // whatever else on touch event
    } else if(e.type == "click") {
       console.log("click event");
       // whatever else on click event
    }

});

答案 1 :(得分:1)

您可能希望$(this).click();代替$('.video-section ul li a').trigger('click');,因为前者只会触发点击touchstart事件触发的元素。后者将触发与选择器匹配的每个元素的单击。