gpt4 book ai didi

javascript - 使用 innerHTML 破坏 keyup 功能

转载 作者:行者123 更新时间:2023-11-30 13:02:44 24 4
gpt4 key购买 nike

所以我有一个文本字段:

number of weeks <div id = "weekcount"><input type="text" id="numweeks" name="numweeks" value="" class = "dialog_inputfield" /></div><br />

还有一个 Javascript 函数,用于检查该文本字段中的值是否随时发生变化:

$('#numweeks').keyup(function(event) {
var date = $('#datepicker').val();
var numWeeks = $('#numweeks').val();
change(calculate(date, numWeeks));
});

而且效果很好。但是我使用 innerHTML 将 ID 为“weekcount”的 div 更改为包含另一个文本字段,然后我将其改回原始文本字段:

document.getElementById('weekcount').innerHTML = '<input type="text" id="numweeks" name="numweeks"  value="" class = "dialog_inputfield" />'

此后 keyup 不再有效,即使 id 与之前相同。我做错了什么吗?谢谢。

最佳答案

您目前直接绑定(bind)到 DOM 元素,但它被您的 innerHTML 赋值所取代,因此也失去了事件绑定(bind)(它是一个新的 DOM 元素)。

您想要的是使用委托(delegate)(“实时”)事件。看看 jQuery on function ,它很好地统一了所有事件处理模式。

$('#weekcount').on('keyup', '#numweeks', function(event) {
var date = $('#datepicker').val();
var numWeeks = $('#numweeks').val();
change(calculate(date, numWeeks));
});

关于javascript - 使用 innerHTML 破坏 keyup 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16777833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com