2013-01-16 37 views
1

我是有一個jQuery的懸停工作

$('.myElement').on('hover',function({...}); 

問題試圖.on('hover'.hover(),這既沒有工作後,我試圖.live('hover',).live('hover',)工作..但是,我使用jQuery 1.8.3所以這是爲什麼? 這是我與工作代碼:

jQuery的

$('.myElement > a').live('hover',function(event) { 
    //do stuff 
} 

HTML

<div class="myElement"> 
    <a href="#" /> 
</div> 

有時我在想,如果我只是做愚蠢的錯誤或languances只是瘋了..

回答

2

on()只有當您在第二個參數中傳遞委託選擇器時才起作用,如live()。在您的情況下,初級選擇器將是,你的.myElement元件被附加到與該委託將.myElement,這樣的容器元素:()

$('.parentOfMyElement').on('hover', '.myElement', function() { 
    // do stuff... 
}); 
+0

語法錯誤... – devnull69

+0

@ devnull69謝謝,修正。 –

0

至於所有其它方法(除了.live ...這是它被棄用的原因之一).on()只適用於已經存在的元素。如果要將事件處理程序也綁定到不存在的元素,則需要使用更高級別元素的委派。

E.g. '.myElement'是'.myContainer'的子元素,那麼你可以做

$('.myContainer').on('hover', '.myElement', function(e) { 
    ... 
}); 
0

試試這個。

$('body').on('hover', '.myElement', function...); 

正文可以引用您需要觀看事件的任何上下文或容器。

0

試試這個

$('.myElement > a').hover(function(event) { 
//do stuff 
    alert('hover'); 
}); 

一看到這個Example

問候。