2016-01-25 1 views
5

私はいくつかの要素を動的に追加し、コードの下で使用した委任されたイベントハンドラでホバープロパティを割り当てていますが、機能しませんでした。委任されたイベントハンドラでホバーが動作しないのはなぜですか?

$(document).on("hover", ".sec_close_fast", function() { 
    $(this).parent('div').parent('div').css("border", "3px solid #000000"); 
}); 

は、その後、私はmouseoverを使用し、それが働いた:

$(document).on("mouseover", ".sec_close_fast", function() { 
    $(this).parent('div').parent('div').css("border", "3px solid #000000"); 
}); 

私はhoverが動作しない理由を知っていただきたいと思い、まだmouseoverはありません。

答えて

7

機能/イベント.hoverは、実際にはイベントではなく、mouseentermouseleaveの略語です。 docsから:

.hover()方法は両方mouseentermouseleaveイベントのハンドラをバインドします。マウスを要素内に置いている間に要素にビヘイビアを単純に適用することができます。

ですから、「デリゲート」のイベントにそれを使用することはできません。

ソリューション

すでに述べたように

、それはドキュメントに記載されているように、あなたが使用することができます。

$(static_parent).on("mouseenter mouseleave", element, function (e) { 
    if (e.type == "mouseenter") { 
    // check if it is mouseenter, do something 
    } else { 
    // if not, mouseleave, do something 
    } 
}); 
関連する問題