我创建了一个简单的代码,但似乎.on委托不起作用?请帮帮忙?
HTML:
<input type="button" value="Click Me!" id="button0" class=".button" />
<br/><input type="button" value="Add" id="add_button" />
<script>
var idx = 1;
$(document).ready(function(){
$(document.body).on('click',".button",function(){
alert(this.id);
});
$('#add_button').on('click',function(){
$('<input type="button" value="Click Me!" class=".button" />')
.attr('id','button' + idx++)
.insertBefore($(this).prev());
});
});
</script>
“点击我!”按钮应该提醒按钮的ID属性,而添加按钮应该添加另一个“Click Me!”具有不同ID属性值的按钮。 http://jsfiddle.net/SrwrK/
请注意我正在尝试使用jQuery的.live()方法解决方法,因为它已被弃用并从1.9中删除。
答案 0 :(得分:3)
<input type="button" value="Click Me!" id="button0" class=".button" />
此代码不正确 - 删除“。”从按钮类前面。类名仅获得“。”在CSS选择器中,如CSS文件或jQuery选择器语句。
<input type="button" value="Click Me!" id="button0" class="button" />
这会奏效。使用jQuery生成的按钮具有相同的问题,因此请将其显示为:
$('<input type="button" value="Click Me!" class="button" />')
你甚至可以将它简化得更像:
$('<input type="button" value="Click Me!" class="button" id="button' + idx++ + '" />')
这将让你跳过.attr()方法。
这是一个有效的JSfiddle:http://jsfiddle.net/SrwrK/1/