1

一時停止のIDを持つ要素をクリックして、時間オブジェクト内の要素のカウントを開始できるようにしたいのですが、一時停止をもう一度クリックすると停止し、JQueryのトグル機能とまったく同じように再クリックして開始します。 setInteval関数これを行うにはどうすればよいですか?

$("#pause").click(function(ffe) {
  if(on == true) {
    on = false 
    alert("on");
  }
  else {
    on = true;
    alert("off");
  }
  if(on == false) {
    setInterval(function() {
      $("#timet ul").append("<li>" + $("#time ul")
                    .children('li').length +"</li>");

    }, 100);
  }
  else {

    alert("Error");
  }
});
4

3 に答える 3

1

関数を使用できます。setTimeout関数を一度実行したい場合は、setInterval連続して実行します。次のことを試してください。

var on = false;
$("#pause").click(function(ffe) {
  if (on) {
      on = false;
      setTimeout(function() {
           $("#timet ul").append("<li>" + $("#time ul")
                    .children('li').length +"</li>");
      }, 100);
  } else {
      on = true; 
  }
});
于 2012-08-08T03:32:25.490 に答える
1

.clearInterval()実行を停止するには、を使用する必要があります。

コードは次のとおりです: ( THE WORKING DEMO )

$("#pause").click((function () {
    var interId = null;
    var $ul = $("#timet ul");
    return function (e) {
        if (interId) {
            $(this).text("start");
            clearInterval(interId);
            interId = null;
        } else {
            $(this).text("pause");
            interId = setInterval(function () {
                $ul.append($('<li>').text($('li', $ul).length));
            }, 100);
        }
    };
}()));​
于 2012-08-08T03:35:24.333 に答える