1

我创建了一个简单的代码,但似乎 .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 属性,而添加按钮应该添加另一个“点击我!” 具有不同 ID 属性值的按钮。http://jsfiddle.net/SrwrK/

请注意,我正在尝试使用 jQuery 的 .live() 方法解决此问题,因为它已被弃用并从 1.9 中删除。

4

1 回答 1

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/

于 2013-09-04T02:10:14.367 回答