2

基本的に、私が持っているのは関数内のsetIntervalです。私がやりたいのは、外部からその振る舞いを制御することです。

これが私が持っているものです-

function wheee() {
var i = 1;

slideee = setInterval(function() {
sliderContent.style.marginLeft = margin(i);
    if(i < imagesNoOneLess) {
        i++;
    } else {
        i = 0;
    }
}, 5000); }

ここで、関数の外部から間隔をクリアしたいと思いwheee()ます。どうやってやるの?

また、外からインターバルをやり直したいです。どのように?

4

3 に答える 3

2

さて、あなたが今コードを持っている方法では、あなたがで「slideee」を宣言しなかったので、それはおそらくちょうどうまくいくでしょうvar

なんらかの方法で戻り値をエクスポートする限り、setInterval()問題はありません。その変数を明示的にグローバルにするか(暗黙的にするよりも良い)、または「wheee」関数に値を呼び出し元に返すようにすることができます。

于 2012-10-13T20:41:29.497 に答える
2

グローバル変数は危険ではありませんが、スライダーが1つしかない場合にそれをコーディングするための適切な方法は、オブジェクトリテラルを使用してシングルトンオブジェクトをシミュレートすることです。

var Slider= {
    slider: null,
    Start: function(i) {
        this.slider = setInterval(function() {
            // Slider code
            console.log('running: ' + i);
            i++;
        }, 1000);
    },
    Stop: function() {
        window.clearTimeout(this.slider);
    }
};

Slider.Start(1); // Start the slider
Slider.Stop(); // Stop the slider
于 2012-10-13T21:38:58.737 に答える
1

のスコープをslideeeから外すように設定しますwheee

グローバルスコープをクリーンに保つためにオブジェクトを使用します。

于 2012-10-13T20:42:39.847 に答える