这就是我所拥有的:
<script language="javascript">
$('#click').one('click', function () {
var html = '<input type="text" class="input-mini" id="new-input" />';
$(this).parent().append(html);
});
$('#new-input').on('keyup', function (e) {
alert('A key was pressed');
if (e.keyCode == 13) {
alert('Enter key pressed');
}
});
</script>
根据other SO answers的推荐,我发现我应该使用on()
绑定(bind)动态创建的元素。我想要发生的是在用户按下 <input>
内的 Enter 键后发生 AJAX 调用。 ID new-input
。然而,当按下任何键时,什么也不会发生。
我需要做什么才能绑定(bind)keyup
方法到新附加的<input>
元素?
谢谢
最佳答案
阅读documentation
.on()
并不总是绑定(bind)动态创建的元素;只有当您传递一个选择器来监听以下内容时,它才会这样做:
$('some container').on('click', '.new-input', function() { ... });
此外,ID 必须是唯一的;你应该使用类。
关于javascript - jQuery 未绑定(bind)到新创建的 <input> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15188145/