2012-06-07 39 views

回答

1

.hover()需要兩個參數:handlerInhandlerOut。如果僅提供一個回調,這就是所謂的兩個事件,所以你需要看一下事件類型,以確定是否fadeInfadeOut

http://api.jquery.com/hover/

你可能在尋找這樣的:

$('.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); 
+0

有趣..讓我試試看。 –

+0

好吧,它的想法是相同的,結果相同。除非你知道如何閱讀,如果對象目前是否被徘徊。 –

+0

更新...必須稍微修改HTML。 – sesser