我的函數觸發第二mouseleave()
事件,而不是第一個,導致nth-child(1)
& nth-child(2)
擁有的bottom:99px
一個的CSS屬性時,我希望他們使用的第一個mouseleave()
事件該屬性設置爲bottom:94px
Jquery事件引發錯誤。需要關閉?
我我相當肯定經過一些研究後,我需要關閉我的(這個)聲明,以便當我在第二輪參數中調用它時,它在新範圍內起作用。
$(document).ready(function(){
$('#rows').on('mouseenter', "div.row div:nth-child(1), div.row div:nth-child(2)",this , function() {
$('img',this).stop().animate({"bottom":"0px"}, "fast");
});
$('div',this).off("mouseleave").on("mouseleave", function() {
$('img',this).stop().animate({"bottom":"94px"}, "fast");
});
// need closure here?
$('#rows').on('mouseenter', "div.row div:nth-child(3), div.row div:nth-child(4)",this , function() {
$('img',this).stop().animate({"bottom":"0px"}, "fast");
});
$('div',this).off("mouseleave").on("mouseleave", function() {
$('img',this).stop().animate({"bottom":"99px"}, "fast");
});
});
謝謝傑克!這是有道理的,謝謝你看看我的問題,祝福! –
而不是('div',this)我只是使用(this),它現在可以在函數的confins中工作:) –
這是非常低效的,因爲它每次都會刪除並重新附加'mouseleave'偵聽器'mouseenter'事件。 – JMM