-1

私は次の構造を持っています:

HTML

<select name="var" id="myselect">
    <option value="">Select</option>
    <option value="1">Value 1</option>
    <option value="2">Value 2</option>  
</select>

JS

$("#myselect").on({
    click: function(){
        console.log("event click fired!");
    },
    change: function(){
        console.log("event change fired!");
    }
});

selectページの読み込み後に動的に作成されるため、イベントは発生しません。

.on()を使用して、グループ化されたイベントで将来の要素を認識する方法を知っている人はいますか?

4

1 に答える 1

1

あなたのコードは機能します。

あなたにとってうまくいかないことがあるものの中で:

  • jQueryをインポートしません
  • スクリプトはHTMLの前に呼び出されます(スクリプトを本文の最後に配置するだけです)

スクリプトを本文の最後に配置できない場合は、準備ができたイベントハンドラーで囲みます。

$(function(){
 $("#myselect").on({
    click: function(){
        console.log("event click fired!");
    },
    change: function(){
        console.log("event change fired!");
    }
 });
});

編集 :

選択が動的に作成される場合は、次を使用します。

$(document.body).on('click', "#myselect", function(){
     console.log("event click fired!");
}).on('change', "#myselect", function(){
     console.log("event change fired!");
});

document.bodyこのコードを呼び出すときに存在し、selectを含む要素のセレクターに置き換えることができることに注意してください。

于 2013-02-15T19:20:26.167 に答える