识别事件对象的最佳方法是什么?

时间:2013-09-19 18:12:20

标签: jquery

让我们说点击一个按钮时会发出很多点击,识别每个事件对象的最佳方法是什么,这样我才能获取第一个事件对象....下面是我尝试但不工作的代码,因为它没有采取eventCounter()函数......我不确定这是否能解决我的问题,但我已经尝试过绑定和取消绑定而不工作..

   var eventIndex;
   var elementOjb;

   function eventCount(eventIndex)
   {
       if(eventIndex == undefined)
       {
         return eventIndex = 0;
       }else
       {
         return eventIndex++;
       }
   }

   $("#file").on("click",{source: eventCounter()}, function(event)
   {
        eventIndex = event.data.source;
        elementOjb = $(this);

        if(eventIndex === 0)
        {
             // create tree
             return false;
        }
   });

1 个答案:

答案 0 :(得分:0)

你想要“去抖”你的功能,也就是说,即使它被多次触发也要运行一次。

有一个jQuery插件可以帮助解决这个问题:http://benalman.com/projects/jquery-throttle-debounce-plugin/

将其添加到您的页面,然后将您的代码更改为:

$("#file").on("click", $.debounce(500, true, function(event){
    event.preventDefault(); // return false doesn't work with debounce
    // create tree
}));

这只会调用你的函数一次(第一次),无论它被触发了多少次。只有在没有触发器暂停500ms后,您的功能才会再次运行。

这是一个快速演示:http://jsfiddle.net/ycpgz/