2

通常、複数のイベントを要素にバインドするには、次を使用します.on()

$("select#id").on("click change").function(){
    // do actions
});

ただし、readywithの使用.on()は jQuery 1.8 で非推奨になりました。

// Deprecated
$(document).on("ready", handler)

.on("ready")また、 とは異なる動作をし.ready()ます。具体的には、ハンドラーは、要素が準備完了後に呼び出された場合でも実行され.on("ready")ますが、準備完了後に要素にバインドされている場合は実行されません。.ready()

名前付き関数でそれを達成できます:

var myFunction = function(){
    // do actions
};

$(document).ready(myFunction);
$("select#id").change(myFunction);

しかし、それは理想的とは言えません。単一の匿名関数を使用すると、よりクリーンになります。

4

2 に答える 2

0

申し訳ありませんが、最近のバージョンの jquery ではできません。

現在選択されているものを単に無視し、選択されているかのようにそのアクションを実行するため、使用しているときにdocument内部以外のものを使用する理由はありません。$().ready.readydocument

$(document).ready(function(){
    $("#theid").change(changeHandler).change();
});

唯一の目的が匿名関数を 1 つだけ使用することである場合は、イベントの委譲がそれを行いますが、それはおそらくやり過ぎです。

$(document).on('change','#theid',thehandler);

ここで、ハンドラーは無名関数または名前付き関数で、選択します。

于 2013-10-16T17:44:35.503 に答える