2011-08-07 110 views
2

示例jsfiddle是here。嘗試懸停紅色方塊,然後盤旋藍色方塊。爲什麼閃爍?我怎樣才能防止藍色方塊消失?jQuery :: live懸停問題

(這實際上是一個標籤,它的前圖標,徘徊時纔會出現)

的JavaScript:

$("#foo").live("mouseover mouseout", function(e) { 
    if (e.type == "mouseover") { 
     $("#foo").append("<div id='bar'>"); 
    } else { 
     $("#bar").remove(); 
    } 
}); 

CSS:

#foo { 
width: 100px; 
height: 50px; 
background: red; 
} 

#bar { 
    width: 10px; 
    height: 10px; 
    background: blue; 
} 

感謝

回答

5

不知道你的意圖是什麼,但它是你在找什麼:http://jsfiddle.net/PXExS/4/

$("#foo").live("mouseenter mouseleave", function(e) { 
    if (e.type == "mouseenter") { 
     $("#foo").append("<div id='bar'>"); 
    } else { 
     $("#bar").remove(); 
    } 
}); 
+0

幾乎完全一樣的[我自己的結論(http://jsfiddle.net達到同樣的事情/ davidThomas/PXExS/6 /),+1! –

+0

woh。謝謝。我跟隨[來自這裏]的評論(http://stackoverflow.com/questions/2262480/jquery-live-hover):「從jQuery 1.4.2開始,.live(」hover「)等同於.live(」mouseover (「mouseenter mouseleave」),函數(){...})或.live(「mouseout」),而不是.live(「mouseenter mouseleave」) - 見bugs.jquery.com/ticket/6077因此, mouseenter「,function(){...})。live(」mouseleave「,function(){...})」。 =/ – CamelCamelCamel