2009-11-24 94 views
1

下面的代碼工作,但是,鼠標輸入產生閃爍的mouseenter休假導致閃爍jQuery中

 $("#helptext").bind("mouseenter",function(){ 
      $("p:first",this).text("helptext."); 
      }).bind("mouseleave",function(){ 
      $("p:first",this).text(""); 
      }); 

下面的代碼不起作用

 /* 
     $("helptext").mouseout(function(){ 
      $("p:first",this).text("sdlfksdlfjskldjl"); 
      }).mouseover(function(){ 
      $("p:first",this).text("mouse over"); 
      });*/ 

我想消除閃爍或取得第二個代碼加工。

爲HTML以上

<div id="helptext"><img alt="Help Text" src="/static/help.png"></img><p></p></div> 

回答

1

我建議使用hover()這個代替結合mouseentermouseleave看起來比較清爽給我。

$("#helptext").hover(function(){ 
    $("p:first",this).text("helptext text."); 
    }, function(){ 
    $("p:first",this).text(""); 
    } 
); 

Btw。我想沒有更多的HTML/CSS代碼,我認爲我們無法解決這個問題,因爲上述內容對我來說根本不閃爍。

入住這裏http://jsbin.com/ihuna/

+0

非常可愛的圖片;-)和演示網站thanx,非常友善。它適用於你,因爲幫助文本的長度小於div寬度。它對我來說是閃爍的,因爲文本的長度更多。請檢查並讓我知道我的假設是否正確。 – dhaval 2009-11-24 16:55:37

+0

檢查新的鏈接。仍然不閃爍爲我。 – jitter 2009-11-24 18:02:32

1

這可能是一種顯而易見的,但是,這不是不工作在第一線缺少#的代碼段? 好像應該是:

$("#helptext").mouseout(function(){ 
    $("p:first",this).text("sdlfksdlfjskldjl"); 
}).mouseover(function(){ 
    $("p:first",this).text("mouse over"); 
}); 
+0

是的,這是一個明顯的錯字。謝謝你指出。 – dhaval 2009-11-24 16:56:35

1

我認爲這可能是你正在使用與JQuery的版本懸停的問題。當鼠標進入綁定元素的子元素時,我正面臨着懸停多次調用的問題。

看看下面的內容。

http://bugs.jquery.com/ticket/5821