-1

div "pushBtns" と id "showPushBtns" のアンカー タグがあります。"pushBtns" はページ読み込み時に非表示になり、ページ読み込み後 5 秒で表示されます。ただし、ユーザーがアンカー ID「showPushBtns」をクリックすると、「timedShow()」関数が停止し、div「pushBtns」が表示されます。時限表示非表示機能は正常に機能していますが、「clearTimeout」を機能させることができません。手伝ってください?

PS私はjQueryの初心者です。

<script type="text/javascript">
$(document).ready(function() {
  var theButtons = $("#pushBtns");
  theButtons.hide();
  function showIt(){
     theButtons.show(1000);
  }
  function timedShow() { 
     var timer = setInterval(function() {showIt();},5000);
  }
  timedShow();
  $('#showPushBtns').click(function(){
     clearTimeout(timer);
  });
});
</script>

答えた http://jsfiddle.net/pcvhG/6/

ありがとう@mguimard

var theButtons = $("#pushBtns");
var togglBtn = $("#showPushBtns");
var timer;
$(document).ready(function() {
theButtons.hide();
function showIt(){theButtons.show(1000);}
function timedShow() { setTimeout(function() {showIt();},5000);}
timedShow();
$('#showPushBtns').click(function(){clearTimeout(timedShow());showIt()});
});
4

3 に答える 3

3

clearIntervalではなく、使用してくださいclearTimeout

または、代わりに と を使用するsetTimeoutclearTimeoutがニーズに適しているはずです。showIt5 秒ごとに呼び出す必要があるのはなぜですか?

于 2013-06-19T09:49:47.127 に答える
0

タイマー変数は timedShow 関数に対してローカルです-グローバルにして、使用する必要がありますclearInterval

$(document).ready(function () {
    var timer;
    var theButtons = $("#pushBtns");
    theButtons.hide();

    function showIt() {
        theButtons.show(1000);
    }

    function timedShow() {
       timer = setInterval(function () {
            showIt();
        }, 5000);
    }
    timedShow();
    $('#showPushBtns').click(function () {
        clearInterval(timer);
    });
});
于 2013-06-19T09:51:05.750 に答える