0

我正在通过 jquery 将一个输入字段插入到 dom 中,不幸的是这种情况无法重现。

但是,当我在输入字段中写入时,它的值不会改变。

你以前见过这种行为吗?如果是这样,你是如何处理的?

只是为了澄清

这个问题中没有代码示例,因为错误不能通过简单的几行代码重现。我必须包含我不允许披露的应用程序部分。因此,我在问人们是否看到过类似的行为,以及在哪里期待它。

4

1 回答 1

1

如果您的意思是事件处理程序不会为动态添加的元素执行,这可能是一个典型的错误,例如

HTML:

<div id="container">
    <div class="box">Box</div>
</div>

JavaScript:

$('.box').on('click', function() {
    alert('box clicked');
});
var newBox$ = $('<div>').addClass('box').html('Box');
$('#container').append(newBox$); // clicks on this box will not be handled.

但是,如果您稍微更改一下 JavaScript,那么动态添加的元素上的事件将按照您的意愿处理:

如何改变它:

$('#container').on('click', '.box', function() {
    alert('box clicked');
});
var newBox$ = $('<div>').addClass('box').html('Box');
$('#container').append(newBox$); // clicks on this box will be handled.

通过这种方式,您将事件处理程序绑定到容器,并且当事件冒泡时将调用适当的事件处理程序。

于 2012-09-26T11:22:02.187 回答