0

このフィドルhttp://jsfiddle.net/adrianjsfiddlenetuser/zyUkd/46/では、div 'Hello 01' & 'Hello 02' をクリックするとアラートが発生します。[新規追加] をクリックすると新しい div が追加されますが、この div をクリックすると、同じ css でスタイル設定されていてもアラートは発生しません。

新しい div が追加されたときにアラートが発生するように、これを修正するにはどうすればよいですか?

後世のための jsFiddle からのコード

JS

$(function() {
    $(".myDivs").click(function() {
         alert('Clicked');
    });

    $("#button").click(get);   
    function get() {
        $(".connected").append("<div class=\"myDivs\">hello</div>");
    }
});

HTML

<div class="connected">
    <div class="myDivs">Hello 01</div>
    <div class="myDivs">Hello 02</div>
</div>
<input name="Button3" type="button" value="Add New" id="button">

</p>

4

3 に答える 3

3

bind イベントの方法はイベントを既存の DOM.myDivsにバインドするだけで、今後はバインドしないため、デリゲートイベントハンドラーが必要です。

$(".connected").on('click', '.myDivs', function() {
    alert('Clicked');
});

デモ

詳しくはこちらへ

于 2012-05-30T13:39:31.653 に答える
0

thecodeparadox の答えは有効です。しかし、私は先に進み、最新の jQuery 規則に完全に一致するようにフィドルを更新しました。

デモ

詳細については、jQuery ドキュメントへのリンクを次に示します: jQuery .on()

于 2012-05-30T13:48:22.540 に答える
0

これは、jQuery が を使用しdocument.readyて割り当てを行っているためです。この要素はロード時に存在しなかったため、この割り当てはありません。この割り当ては個別に行う必要があります。

于 2012-05-30T13:40:56.520 に答える