2012-04-10 64 views
1

可能重複:
Using delegate() with hover()?代表/上懸停

我想這個代碼,但顯然我做錯了什麼。通過此代碼,hover效果不起作用。

然而,像這樣:$('.group>span').hover (function() {工作正常,但我需要委託內容html()

<div class="group"> 
    <span></span> 
</div> 

$('.group>span').delegate("hover", "a", function() { 
    $(this).html('<a href="#new_list">Some button</a>'); 
}, function() { 
    $(this).empty(); 
});​ 

任何想法?謝謝

+0

我更新[我的回答(http://stackoverflow.com/a/10081842/601179)。你使用委託功能錯誤 – gdoron 2012-04-10 01:20:04

+0
+0

我正在做一些測試,但是,我會接受,謝謝 – 2012-04-10 01:49:36

回答

0

傳遞給delegate的參數數量無效。您通過,而它應該只需要3.

.delegate(selector, eventType, handler(eventObject))是函數簽名。
而你的代碼中參數的順序是錯誤的!你交換的選擇和事件類型

你寫這樣的:

$('.group>span').delegate ("hover", "a", function() { 

雖然它應該在這個順序:

$('.group>span').delegate ("a", "hover", function() { 

反正你可以使用delegatehover這樣:

$('.group>span').delegate("a", "mouseenter", function() { 
    $(this).html('<a href="#new_list">Some button</a>'); 
}); 

$('.group>span').delegate("a", "mouseleave", function() { 
    $(this).empty(); 
}​); 

LIVE DEMO
你可以看到另一種方式在這個問題去:
Using delegate() with hover()?

+0

http://jsfiddle.net/NSYWG/ - >錯了什麼? – 2012-04-10 01:33:14

+0

@loops。是...更新你的小提琴。 [here](http://jsfiddle.net/NSYWG/1/) – gdoron 2012-04-10 01:38:55

+0

** @ Downvoter請解釋你的行爲!!! ** – gdoron 2012-04-10 20:21:35

0

hover只是一個方便的包裝mouseentermouseleave。我認爲你將不得不分開處理每一個。

+1

雖然你是對的。他的代碼中有更多錯誤... :) – gdoron 2012-04-10 01:23:14