2012-09-16 177 views
1

你好,我有一些問題,如何阻止點擊功能如果#health點擊jQuery的點擊功能塊

時點擊功能被拼命地跑,我可以再次點擊,但如何阻止2點擊。

$('#health').click(function() { 
    var count = <?=$wait_time?>; 
    countdown = setInterval(function(){ 
    $("p#health").html(count + " seconds remaining!"); 
    if (count == 0) { 
     $.ajax({ 
     url: 'pages/map/hospital.php?heal=1', 
     success: function(data) { 
     $("p#health").hide(); 
     } 
     }); 
    } 
    count--; 
    }, 1000); 
}); 
+0

http://stackoverflow.com/a/12443696/1250044 – yckart

回答

2

使用.one()方法,而不是.click()

$('#health').one('click', function() { 
    //etc 
}); 

要清除的時間間隔,只需使用clearInterval()方法:

clearInterval(countdown); 
0
var state = true; 
$(document).click(function() { 
    if (state === true) { 
     var count = < ? = $wait_time ? > ; 
     countdown = setInterval(function() { 
      $("p#health").html(count + " seconds remaining!"); 
      if (count == 0) { 
       $.ajax({ 
        url: 'pages/map/hospital.php?heal=1', 
        success: function(data) { 
         $("p#health").hide(); 
        } 
       }); 
      } 
      count--; 
     }, 1000); 

     state = false; 
    } 
}); 
0

如果您想阻止後續點擊做任何事情,試試這個:

$('#health').click(function() { 
    if(countdown) 
    return false; 

    var count = <?=$wait_time?>; 
    countdown = setInterval(function(){ 
    $("p#health").html(count + " seconds remaining!"); 
    if (count == 0) { 
     $.ajax({ 
     url: 'pages/map/hospital.php?heal=1', 
     success: function(data) { 
     $("p#health").hide(); 
     } 
     }); 
    } 
    count--; 
    }, 1000); 
});