8

http://api.jquery.com/on/の jQuery ドキュメントでは、次の構文 (イベント ハンドラーを 1 つの要素のみにアタッチする) を使用した委任イベントの利点について言及しています。

$('#mytable').on('click', 'tr.hoverable', function(){
    // blah
});

しかし、デリゲート イベントを使用して一度に複数のイベントをアタッチするための適切な構文への参照が見つかりません。以下のショートカットはありますが、委任されたイベントとして tr.hoverable を使用していますか?

$('#mytable tr.hoverable').on({
    mouseenter: function(){
        // blah
    },
    mouseleave: function(){
        // blah
    },
    click: function(){
        // blah
    }
});

それともこれが唯一の解決策ですか...

$('#mytable').on('click', 'tr.hoverable', function(){
    // blah
}).on('mouseenter', 'tr.hoverable', function(){
    // blah
}).on('mouseleave', 'tr.hoverable', function(){
    // blah
});

?

4

1 に答える 1

10
$('#mytable').on({
    mouseenter: function(){
        // blah
    },
    mouseleave: function(){
        // blah
    },
    click: function(){
        // blah
    }
}, '.hoverable');

この署名に従って

.on( イベントマップ [, セレクター] [, データ] )

また、最適化されるため、委任には単一の tagName/className/id セレクターを優先します

于 2012-06-12T11:35:11.723 に答える