javascript 更新ID和jQuery事件处理程序的问题[已关闭]

pinkon5k  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(96)

**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
两年前关闭。
Improve this question
我试着做一些形式,但我被困在移动到第三步。
我的下一个按钮确实有一个像这样的递增ID:

$('#to-q-2').click(function (e) {
    e.preventDefault();
    $(this).attr("id", "to-q-3");
})

所以ID被更新了。但当我再次点击时:

$('#to-q-3').click(function(e) {
        e.preventDefault();
        alert('stop');
});

什么都没发生我猜jQuery没有更新DOM,但我不知道如何做到这一点。有线索吗

xcitsw88

xcitsw881#

您需要将click事件添加到document中,以便它可以查找在click事件的初始绑定中不存在的新元素,这样您就可以将click事件添加到动态添加的元素中。您可以使用以下命令执行此操作:
$(document).on('click', '#to-q-3', function() {...})
参见下面的工作示例:

$(document).on('click', '#to-q-2', function (e) {
    e.preventDefault();
    $(this).attr("id", "to-q-3");
});

$(document).on('click', '#to-q-3', function(e) {
  e.preventDefault();
  alert("stop");
});
#to-q-2 {
  color: red;
}

#to-q-3 {
  color: lime;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="to-q-2">Click this div</div>

相关问题