1

我的问题,我想去抖动函数调用,但与调用函数的范围有关。

在我的示例中,我查找事件委托的点击并消除点击。

这可行,但去抖动不是特定于元素的!

http://jsbin.com/itapuf/2/edit

有没有优雅的方法?


编辑: 更具体地说(我的英语不是最好的)

我想替换这段代码:

$('#blue').on('click',function(id){
    addBeep('trigger');
}.throttle(300) );

$('#green').on('click',function(id){
    addBeep('trigger');
}.throttle(300) );

通过这个(委托事件):

$('#btns').on('click','button', function(id){
    addBeep('trigger');
}.throttle(300) );

但如果我这样做,可能会丢失对特定元素的最新点击。

我需要类似的东西:

$('#btns').on('click','button', function(id){
    addBeep('trigger');
}.throttle(300, {bindToScopt:true} ) );

但是如何改变油门功能使其像这样工作呢?

或者这个问题有更好的解决方案吗?

4

1 回答 1

0

我想,您可能想在适当的地方添加以下内容

 e.stopPropagation()

这会在冒泡阶段停止事件的所有传播。要获得完整的跨浏览器体验,请执行

function doSomething(e) {
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}

请务必阅读quirksmode.org 上有关事件处理的完整帖子

于 2012-12-11T09:32:46.003 回答