2015-02-06 51 views
0

我有以下連接到href標記循環計數:FastClick拋出了。對(「點擊」)中的PhoneGap項目

$('body').on('click', '.classidentifier', function(e) 
    { 
    DoSomething(); 
    }); 

的DoSomething的()函數包含的應該解僱六倍的遞增循環:

var DoSomething = function() { 
    if (ClickCounter < 6) { 
    ClickCounter++ 
    DoSomethingElse(); 
    }; 
    if (ClickCounter == 6){ 
    BailYouAreDone(); 
    ClickCounter = 0; } 
    } 

所有在瀏覽器環境中都能正常工作,並且實際上有鼠標點擊。 它在編譯的PhoneGap應用程序中也可以正常工作。

但是我厭倦了在觸摸屏環境中發生的.on('click')事件300毫秒的滯後,所以我安裝了FastClick.js庫,該庫監視touchend事件併發送合成點擊.on ('點擊')事件。

但是現在DoSomethingElse()函數觸發6次以上:有時7次,有時8次,有時更多,看起來依賴於按下href鏈接的速度。我嘗試過在DoSomethingElse()例程中捕捉ClickCounter> 6,但沒有喜悅。我究竟做錯了什麼?

回答

1

這裏的其他地方上有保證。對一個尖端(「點擊」)事件只火一次:

$(element).off().on('click', function() { 
// function body 
}); 

嘗試。

+0

是的,試過......問題是我在綁定到body元素的頁面上有幾個按鈕和鏈接:這使得它們都是一炮打響的。但是,謝謝! – brianfit 2015-02-07 13:24:09