1

.append()メソッドを使用していくつかのdivを生成しました。

コードは次のようになります。

$("#someDiv").prepend("<div id='someId' class='myClass'></div>"):
$("#someDiv").prepend("<div id='someId2' class='myClass'></div>"):

それはうまく機能します、今、私はそのdivsidを使用したいと思います。

私はそれをこのようにしようとしています:

$(".myClass").click(function(){
    alert($(this).attr('id'));
})

しかし、それは機能しません、私を助けてください。

4

2 に答える 2

4

要素が動的に生成される場合は、ハンドラーをバインドするときに実際に存在する要素にイベントを委任する必要があります。たとえば、次のようになります。

$(function() {
    $("#someDiv").on("click", ".myClass", function(){
        alert(this.id);
    });
});

そして、それらを機能させるには、先頭のコロンをセミコロンに置き換える必要があります。

フィドル

于 2012-09-22T13:14:32.687 に答える
0

問題は、実際にdivを追加する前にクリックイベントを「myClass」にバインドしていることが原因である可能性があります。このような新しいdivを追加するためのコードの後に​​クリックイベントコードを配置してみてください

$("#someDiv").prepend("<div id='someId' class='myClass'></div>"):
$("#someDiv").prepend("<div id='someId2' class='myClass'></div>"):

$(".myClass").click(function(){
    alert($(this).attr('id'));
})
于 2012-09-22T13:22:17.423 に答える