請查看下面的例子: http://jsfiddle.net/AAd9b/1/哈弗對象出現兩次背景/前景元素時層重疊
每次我將鼠標懸停在該對象中,重疊的對象將打開兩次,我怎麼做它,所以它僅一次淡入並留在那裏,直到我將鼠標移出所有東西?所以,如果你在背景或前景對象上,這並不重要。
請查看下面的例子: http://jsfiddle.net/AAd9b/1/哈弗對象出現兩次背景/前景元素時層重疊
每次我將鼠標懸停在該對象中,重疊的對象將打開兩次,我怎麼做它,所以它僅一次淡入並留在那裏,直到我將鼠標移出所有東西?所以,如果你在背景或前景對象上,這並不重要。
.hover()
需要兩個參數:handlerIn
和handlerOut
。如果僅提供一個回調,這就是所謂的兩個事件,所以你需要看一下事件類型,以確定是否fadeIn
或fadeOut
你可能在尋找這樣的:
$('.someclass').hover(
function() {
//-- mouseenter
},
function() {
//-- mouseleave
}
);
您的元素在鼠標下閃爍的原因是因爲它會觸發$('.someclass')
上的mouseleave
事件(因爲在技術上,鼠標確實離開了該對象)。這是一個棘手的情況。可能會涉及解除綁定和重新綁定事件,而鼠標是在您的<p>
...或一些花哨的CSS欺騙。
或者試試這個:http://jsfiddle.net/UBdgz/
HTML:
<div class="wrapper">
<div class="someclass">
<a href="#">Hover Me</a>
</div>
<p>Only Once!</p>
</div>
JS:
var handleHover = function(evt) {
switch (evt.type) {
case 'mouseenter':
$("p").fadeIn();
break;
case 'mouseleave':
$("p").fadeOut();
break;
}
}
$(".wrapper").bind('mouseenter mouseleave', handleHover);
是的,我重讀你寫的,並意識到這就是你問的不是什麼。抱歉。 – Rooster