3

ホバーで停止したいカスタムメイドのスライダーがあります。ホバーの間隔をクリアして設定しようとしましたが、正しく機能しません。初めてホバーしたときにのみ停止し、マウスを外に出して再び入れても停止しません。

これが私のコードです:

    var itvl = null;

    itvl = window.setInterval(function(){scroll_()},3000);

    function scroll_() {
        if ($('#carousel_ul li').length > 1) {
            $("#right_scroll").click();
        }
    }

    $('#carousel_ul li').hover(function() {
        window.clearInterval(itvl);    
    }, function() {
        window.setInterval(function(){scroll_()},3000);
    });

私が間違っていることは何ですか?

前もって感謝します

マウロ

4

3 に答える 3

2

ホバーオフの間隔を設定する場合、itvlは設定しません。itvlは、実際には間隔への参照として機能する整数です。したがって、window.setInterval(function(){scroll_()},3000);何も参照せずに参照を変更すると、参照が変更されます。

代わりにこれを試してください:

$('#carousel_ul li').hover(function() {
    window.clearInterval(itvl);    
}, function() {
    itvl = window.setInterval(function(){scroll_()},3000);
});
于 2011-12-12T10:53:12.493 に答える
1
$('#carousel_ul li').hover(function() {
    window.clearInterval(itvl);    
}, function() {
    itvl = window.setInterval(function(){scroll_()},3000);
});
于 2011-12-12T10:51:05.043 に答える
0

clearIntervalではなくブール変数を使用できます。

    var scrolling= true;    
    window.setInterval(scroll_,3000);    
    function scroll_() {
        if(scrolling) {
            if ($('#carousel_ul li').length > 1) {
               $("#right_scroll").click();
            }
        }
    }    
    $('#carousel_ul li').hover(function() {
        scrolling = false;    
    }, function() {
        scrolling = true;
    });
于 2011-12-12T10:55:28.683 に答える