0

重複の可能性:
動的に作成されたアイテムに対してjQueryクリックが機能しない

        $(document).ready(function(){
            $('#btn').click(function(){

                var createInput=$("<input type='button'>");
                createInput.attr("id","close1");
                createInput.attr("value","close");
                $('#outer-div').append(createInput);
            });

            $("#close1").click(function(){
                alert('hi');
            });
        });


    </script>
</head>
<body>
    <div id='outer-div'>
        <input id='btn' type='button' value='click here'/>
    </div>

コードの何が問題になっていますか。動的に生成されたcloseという名前のボタンをクリックしてもアラートが表示されません。手伝ってください

4

1 に答える 1

5

これはうまくいくでしょう:

    $(document).ready(function(){
        $('#btn').click(function(){

            var createInput=$("<input type='button'>");
            createInput.attr("id","close1");
            createInput.attr("value","close");
            $('#outer-div').append(createInput);
        });

        $(document).on('click', "#close1", function(){
            alert('hi');
        });
    });

の問題

$("#close1").click...

この行を実行するとコレクションが空になるため、イベントハンドラーは何にも追加されません。on関数はそれを修正します。

ところで、スクリプトを頭ではなく体の端に置くことをお勧めします。

于 2012-10-14T13:28:25.430 に答える