0

LIに閉じるボタンを追加する単純なホバー機能があります。問題は、新しい LI が作成され、ホバーが機能しなくなることです。が新しく作成された要素を監視することは知ってい.On();ますが、それは でのみ機能するよう.click()です。

JS:

 $("#sortable li").hover(function () {
     $(this).find(".close").show();
 },
 function () {
     $(this).find(".close").hide();
 });
4

2 に答える 2

1

委任された形式のイベント処理を使用できますが、疑似イベントでは機能しないhoverため、mouseenterイベントとmouseleaveイベントの両方を監視する必要があります。

$("#sortable").on("mouseenter", "li", function() {
    // mouse over code here
    $(this).find(".close").show();
});

$("#sortable").on("mouseleave", "li", function() {
    // write your hover out code here
    $(this).find(".close").hide();
});

またはよりコンパクトな形式:

$("#sortable").on({
    mouseenter: function() {
        // mouse over code here
        $(this).find(".close").show();
    }, 
    mouseleave: function() {
        // mouse leave code here
        $(this).find(".close").hide();
    }
 }, "li");

これが機能する方法は、マウスイベントがパーツチェーンをバブルアップするため、この委任された形式は、子タグで発生したイベントを親から.on()監視し、目的のイベントに一致したときにコールバックをトリガーします。#sortableli

于 2013-02-12T02:06:18.813 に答える
0
$('#sortable').on({
    mouseenter: function() {
            $(this).find(".close").show();
        },
    mouseleave: function() {
            $(this).find(".close").hide();
        }
}, 'li'); 
于 2013-02-12T02:05:27.107 に答える