2

li 要素の数に基づいて div を作成するスクリプトを作成しましたが、その部分は正常に動作しています。今私がやりたいことは、これらの div (動的に作成されたもの) を非表示にすることですが、機能していません。誰かが私がここで間違っていることを教えてもらえますか? THX!!
ここでフィドル

私のコード:

$(document).ready(function(){
$(".create").click(function(){
i='';
var count = $("li").length;
for(var i=0;i<count;i++){
$('<div class="mydiv" style="width:100px;height:100px;background-color:red;border:1px solid #000000;"></div>').appendTo('body');
}
});

$('.check').click(function(){
var getDivs= $('div').length;
alert(getDivs);
});
//Why is this not working?
$('div').click(function(){
$(this).hide();
});
});
4

3 に答える 3

3

代わりにこれを実行してみてください(divを作成するときにクリックイベントを添付してください):

$('<div class="mydiv" style="width:100px;height:100px;background-color:red;border:1px solid #000000;"></div>')
.click(function(){
 $(this).hide();
})
.appendTo('body');
于 2013-04-05T23:45:29.310 に答える
1

このコードはすべて jQuery 対応である必要があります。問題は、要素が作成される前にイベントがバインドされていることです。

$(document).ready(function(){
    $(".create").click(function(){
        i='';
        var count = $("li").length;

        for(var i=0;i<count;i++){
            $('<div class="mydiv" style="width:100px;height:100px;background-color:red;border:1px solid #000000;"></div>').appendTo('body');
        }
        $('.check').click(function(){
            var getDivs= $('div').length;
            alert(getDivs);
        });
        //Now working
        $('div').click(function(){
            $(this).hide();
        });
    });
});
于 2013-04-05T23:45:59.827 に答える
0

試す

$(document).on('click', 'div', function () {
 $(this).hide();
 )};
于 2013-04-05T23:46:44.517 に答える