5

複数のアクションを同じon()機能に組み合わせることが可能かどうか疑問に思っていますか?

私のコード:

$(document).on('mouseout', '#tip', function() {
    $('#tip .ttip').show();
});

$(document).on('click', '#tip', function() {
    $('#tip .ttip').show();
});

以下を試してみましたが、どちらもうまくいきませんでした。

$(document).on('mouseout, click', '#tip', function()
$(document).on({'mouseout', 'click} '#tip', function()
4

3 に答える 3

6

あなたはほとんどそれを持っていました..

イベント間にスペースを使用する必要があります

$(document).on('mouseout click', '#tip', function() {
    $('#tip .ttip').show();
});

ただし、へのバインディングdocumentは眉をひそめます。これは、この理由 (およびその他のいくつか) で廃止された.liveメソッドを模倣しています。

見積もり

最高のパフォーマンスを得るには、委任されたイベントをターゲット要素にできるだけ近いドキュメントの場所に添付します。大きなドキュメントで委任されたイベントを過度に使用しdocumentたり、委任したイベントを使用したりしないでください。document.body


http://api.jquery.com/on/のドキュメントを参照してください。

引用

on( events [, selector] [, data], handler(eventObject) )
eventsスペースで区切られた 1 つ以上のイベント タイプとオプションの名前空間 (" click" や " keydown.myPlugin" など)。

于 2012-12-07T21:13:46.440 に答える
2

jQuery APIによると、「イベント」はスペースで区切られています

.on( events [, selector] [, data], handler(eventObject) )

events: スペースで区切られた 1 つ以上のイベント タイプとオプションの名前空間 (clickまたはなど) keydown.myPlugin

selectorA: イベントをトリガーする選択された要素の子孫をフィルタリングするためのセレクター文字列。セレクターが null または省略されている場合、イベントは選択された要素に到達したときに常にトリガーされます。

data: イベントでハンドラーに渡されるデータ。イベントがトリガーされたときのデータ。

handler(eventObject): イベントがトリガーされたときに実行する関数。値 false は、単純に false を返す関数の省略形としても使用できます。

于 2012-12-07T21:13:29.510 に答える
1

私はあなたがそのようにスペースを空けることができると信じています

$(document).on('mouseout click', '#tip', function() {
    $('#tip .ttip').show();
});
于 2012-12-07T21:13:38.920 に答える