1

こんにちは私はいくつか質問があります、#healthがクリックされた場合にクリック機能をブロックする方法

クリック機能を実行すると、もう一度クリックできますが、ブロック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);
});
4

3 に答える 3

2

.one()の代わりにメソッドを使用してください.click()

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

間隔をクリアするには、次のclearInterval()方法を使用します。

clearInterval(countdown);
于 2012-09-16T01:12:43.350 に答える
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;
    }
});
于 2012-09-16T01:13:27.387 に答える
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);
});
于 2012-09-16T01:13:31.430 に答える