0

私は周りを見回してきましたが、まだ解決策を見つけることができませんでした。私のコードは次のようなものです:

$('#addDiv').click( function() {

          var divNum = divNum + 1;
          var newdiv = document.createElement('div');
          var divIdName = 'mydiv';
          newdiv.setAttribute('id',divIdName+divNum);
          newdiv.className = 'imgDiv';

});

$('#cont-div').on('click', function(e) {

        //REMOVE clicked div

});

動的に作成されたdivを含む「cont-div」という名前のdivがあります。おそらく解決策は非常に単純ですが、「cont-div」内でクリックされたdivを識別する方法が見つからないため、削除できます。

4

4 に答える 4

1

divは動的に作成されるため、イベント委任を使用できます。

$('#cont-div').on('click', 'div', function(e) {

        //REMOVE clicked div
        $(this).remove();

});
于 2013-03-26T20:19:41.940 に答える
0
$('#cont-div div').on('click', function(e) {

    var clickedDiv = e.target;

    if(clickedDiv != e.currentTarget)
    {
        //Remove the clicked div if it is not the parent.
        $(this).remove();
    }

});
于 2013-03-26T20:17:29.323 に答える
0

うーん、あなたのコードはあなたが同じIDを持つ複数の要素を持っているかもしれないことを意味します。そうしないでください、それは物事を難しくします。設定したクラスを使用するだけです。

$('.imgDiv').on('click', function() {
    $(this).remove();
});
于 2013-03-26T20:18:59.420 に答える
0

jquery remove()を使用して要素を削除できます。また、動的に挿入された要素のイベントを単純に処理するためのデリゲートが必要になります。

作業デモ

HTML:

<input id="addDiv" type="button" value="click!" />

Javascript:

$(function(){
    $('body').on('click','.imgDiv',function(){
        $(this).remove();
    });
});

編集:コードスニペットを短縮し、関連する部分のみを表示するようになりました。

于 2013-03-26T20:26:21.573 に答える