1

私は2つのボックスを持っています.最初の青いボックスは矢印を上に動かし始める必要があります. 提案していただきありがとうございます。

http://jsfiddle.net/Km7nw/3/

$(document).ready(function(){
    $('.box1').click(function () {
       setInterval(function(){
          $('.arrow').css("top", "-=20px");
       }, 400);

       //clicking on box2 must clearInterval

    });
});
4

4 に答える 4

1

クロージャー変数を使用して、間隔への参照を保存できます

$(document).ready(function () {
    var interval;
    $('.box1').click(function () {
        interval = setInterval(function () {
            $('.arrow').css("top", "-=20px");
        }, 400);
        //clicking on box2 must clearInterval
    });
    $('.box2').click(function () {
        clearInterval(interval)
    });
});

デモ:フィドル

于 2013-09-07T11:06:40.593 に答える
1

clearInterval() 関数を使用 します。

clearInterval(intervalID)

intervalID は、キャンセルする繰り返しアクションの識別子です。この ID は setInterval() から返されます。

したがって、 メソッド から id isetIntervalを作成し、 それをに渡しますclearInterval

$(document).ready(function(){
var idToClear;
    $('.box1').click(function () {
        idToClear = setInterval(function(){
          $('.arrow').css("top", "-=20px");
       }, 400);
       //clicking on box2 must clearInterval
    }); 

     $('.box2').click(function () {
      clearInterval(i);
    }); 
});

注: ここで重要なことの 1 つは、 クリック コールバック関数でidToClear,should be availableのスコープです。button2

button1それが、クリックの外側で宣言した理由ですcallback function.

ワーキングデモ

于 2013-09-07T11:06:52.407 に答える
1

これを試して:

$(document).ready(function(){
    var interval; 
    $('.box1').click(function () {
       interval = setInterval(function(){
          $('.arrow').css("top", "-=20px");
       }, 400);       
    });

    $('.box2').click(function () {
       clearInterval(interval);      
    });    
});

ここでフィドル:http://jsfiddle.net/Km7nw/4/

于 2013-09-07T11:07:11.583 に答える
0

これを試して、

このような機能が必要だと思います。

$(document).ready(function(){
var IntID;
    $('.box1').click(function () {
       IntID = setInterval(function(){
          $('.arrow').css("top", "-=20px");
       }, 400);
       //clicking on box2 must clearInterval
    });

    $('.box2').click(function () {
         clearInterval(IntID);
 });
});
于 2013-09-07T11:11:11.090 に答える