2013-04-07 98 views
0

我試圖通過jquery模擬消息編寫器。 例如,在第一次點擊按鈕2 時,我需要得到一個「a」,第二個點擊「b」和「c」。 我遇到了困難,因爲如果我點擊3次,它會執行所有的操作, 它不會打印「c」。 謝謝在jquery中多次點擊

var letters = [];

$('#2').click(function (e) { 
     letters.push('a'); 
     $('#2').click(function (e) { 
      letters.push('b'); 
      $('#2').click(function (e) { 
       letters.push('c'); 
      }) 
     }) 
     $('#mytext').append(letters); 
    }) 

好了,如果我在按鈕單擊兩次「#2」,我得到3「是」的,我需要得到的只是一個‘B’,而不是在變量點擊

+0

一些代碼肯定會有所幫助。 – 2013-04-07 19:32:47

+0

你在事件處理程序中綁定事件處理程序當你第一次點擊'#2'時,你*添加*另一個事件處理程序。然後,當您再次單擊時,將執行兩個綁定處理程序,並添加兩個。在第三次點擊時,你已經有四個綁定到這個元素的事件處理程序,並且它們都被執行(並且綁定四個以上(如果我沒有錯的話))。 – 2013-04-07 19:51:32

回答

0

商店數量和用定時器每次點擊運行功能。如果計時器在下次點擊之前完成,則會根據變量中的當前編號打印字符,否則將重置計時器。這裏的示例代碼..

var counter=0; 
var timerId=null; 

$(document).click(function(){ 
    counter++; 
    if (timerId != null) 
     clearTimeout(timerId); 

    // Executes after 500 milisecond .. You can increase the timer value.. 
    timerId = setTimeout(checkClickCount, 500); 

}); 

function checkClickCount() 
{ 
    switch(counter) 
    { 
     case 1: 
      alert('a'); 
      break; 
     case 2: 
      alert('b'); 
      break; 
     case 3: 
      alert('c'); 
      break; 
    } 
    counter=0; 
} 
+0

謝謝,正是我需要的。我一直知道我需要包括一個計時器和一個計數器:) – user2255292 2013-04-07 20:16:19