コードが継続的に繰り返されていると思います。したがって、 callbackを追加clearInterval
してください。
ただし、注意してください。以下のような変数を使用する必要があります
var toggle;
$(".miniPosterImg").hover(function() {
toggle = setInterval(function(){
thismarginLeft = $(this).css("margin-left").replace(/[^0-9]/g,'');
if(thismarginLeft < 360){
thismarginLeft = thismarginLeft-120;
//}else{
// thismarginLeft = 0;
}
$(this).css("margin-left", thismarginLeft + "px");
},1000);},
function(){
clearInterval(toggle);
}
});
コメントからの更新:
setInterval
このように処理する別の方法を用意したほうがよい
tToggle = function () {
thismarginLeft = $('.miniPoster').css("marginLeft").replace(/[^0-9]/g,'');
if(thismarginLeft < 360){
thismarginLeft = thismarginLeft-120;
}
$('.miniPoster').css("marginLeft", thismarginLeft + "px");
}
次に、このように使用します
var toggle;
$(".miniPosterImg").hover(function () {
toggle = setInterval(tToggle, 1000);
},
function () {
clearInterval(toggle);
});
参考までに:
$('.miniPoster').css("margin-left") //WRONG
$('.miniPoster').css("marginLeft") //CORRECT
働くJSFIDDLE