2011-04-11 19 views
2


私の「setInterval」関数に問題があります。私のdivをホバリングしているときに関数を開始したいと思いますが、setIntervalの作業最初の時に私はdiv =>を私はdivに滞在している場合、それは画像を変更し続けるではなく、 'setinterval'を停止します。jQuery setInterval/hovering:一度動作しますが、setIntervalを停止します。

マウスセンターに問題がありますか?私は 'ホバー'などを試みたが、何もトリックを作るようです。

解決方法はありますか?あなたがのsetInterval($(この))次回はなく関数自体の戻り値を代入しているので、それがある

img.bind('mouseenter', function(){ 
    setInterval(next($(this)),1000); 
}); 

function next(elem){ 
    var img_li = elem.find('li'); 
    count++; 
    if (count>2) count=0; 

    img_li.eq(count).fadeIn('fast', function(){ 
     img_li.eq(current).css({'display':'none'}); 

     current = count; 
    }); 
} 

答えて

2

おかげであなたの助けのためにたくさんは、ここに私のコードです。

はこれを試してみてください:

img.bind('mouseenter', function(){  
    var that = $(this); //Use that-this model to avoid any scope issues with this reference 
    setInterval(function(){ 
     next(that); 
    },1000); 
}); 
+0

まあまあまあです!ありがとう! – Paul

2

あなたはそれが簡単な機能で動作するようになりjQuery Timersプラグインを使用して検討するかもしれません。具体的には、以下を見て:

毎回(間隔:整数|文字列、[ラベル=間隔:文字列]、FN:機能、[回= 0:整数])

毎回ます所定の回数(時間)にわたって所定の時間間隔(間隔)で実行するために、定義済み関数(fn)を時間付きイベントとして追加します。 timesが0に設定されている場合、メソッドが呼び出される回数は無制限です。ラベルは、指定された文字列(ラベル)または指定された間隔の文字列表現のいずれかに、指定されたタイムイベントに対しても設定されます。さらに、3秒間の「3秒」などの文字列を使用して間隔を定義することもできます。

+0

申し訳ありません!私は見てみましょう! – Paul

関連する問題