給定一個頁面上的一些'.hovertarget'div,下面的鼠標懸停/鼠標懸停事件似乎是同步觸發的 - 也就是說,如果您快速將鼠標從一個項目(A)移動到另一個項目(B),則B fade-在A淡出完成之前不會啓動。如果你快速做到這一點,那麼你會有一系列的淡入/淡出幾秒鐘。 這不是我想要的行爲。我該如何改變這一點,以便事件彼此獨立?爲什麼這些jquery事件同步觸發?
我使用jQuery 1.6.2
$(".hovertarget").live('mouseover mouseout', function(event) {
var child = $(event.target).find(".targetchild");
if (event.type == 'mouseover') {
child.fadeIn(200);
} else {
child.fadeOut(200);
}
});
HTML此應用(如需要):
<div class="hovertarget" id="s1"><div class="targetchild"></div></div>
<div class="hovertarget" id="s2"><div class="targetchild"></div></div>
你嘗試使用**。停止()**方法停止animiation? – Anatoly
你是否嘗試過使用fadeTo,你也應該使用delegate而不是live。這是一個簡單的變化$(「。hovertarget」)。live to $(「。hovertarget」)。delegate,應該是一樣的。同樣在這種情況下,fadeTo會更好地工作,因爲它不會應用display:none,否則可能會產生抖動效果或其他不需要的效果。 – Matt
@matt - 不會嘗試。現場和委託有什麼區別? (我正在使用,因爲這些是動態添加的元素)。 – UpTheCreek