jQueryのライブ方法によるホバーイベントの処理例


hover([over.]out)は、一つのオブジェクトの上にマウスを移動させたり、このオブジェクトを移動させたりする際に、マッチする要素の上にマウスを移動させると、指定された最初の関数をトリガします。この要素をマウスで移動すると、指定された2番目の関数がトリガーされます。
 
$('.myDiv').hover(function() {
doSomething...
}, function() {
doSomething...
});
で問題なのは、メニューがAJAXを通じて動的にロードされています。hoverメソッドが実行されている時にメニューがまだ読み込まれていません。だから、jqueryのもう一つの方法でlive().live()方法を使うと、まだDOMに追加されていない要素に対して有効です。これは、イベント依頼を使用しているためです。祖先要素に結合されたイベントハンドリング関数は、後代にトリガされるイベントに対して応答することができます。渡されたライブ()のイベントハンドラ関数は元素に結びつけられないが、彼を特殊なイベントハンドラ関数としてDOMツリーのルートノードに結びつける。
 
$('.myDiv').live('hover',function(event){
if(event.type=='mouseenter'){
doSomething...
}else{
doSomething...
}
})
にあるjqueryバージョンの応答は、mouseenterとmouseleaveで、mouseoverとmouseoutであることがあります。