我创建了一个脚本,根据li元素的数量创建div,该部分工作正常。现在我想要做的是隐藏这些div (动态创建)但它不起作用。谁能告诉我这里做错了什么?谢谢!!
Fiddle here
我的代码:
$(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();
});
});
答案 0 :(得分:3)
尝试改为(并在创建div时附加click事件):
$('<div class="mydiv" style="width:100px;height:100px;background-color:red;border:1px solid #000000;"></div>')
.click(function(){
$(this).hide();
})
.appendTo('body');
答案 1 :(得分: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();
});
});
});
答案 2 :(得分:0)
尝试
$(document).on('click', 'div', function () {
$(this).hide();
)};