jQuery不绑定新创建的<input>元素
jQuery Not Binding to Newly-Created <input> Element
我有:
<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>
根据其他SO答案的建议,我发现我应该使用on()
来绑定动态创建的元素。我想要发生的是在用户按下ID为new-input
的<input>
内的Enter键后发生AJAX调用。然而,当按下任何键时,什么也不会发生。
为了将keyup
方法绑定到新附加的<input>
元素,我需要做些什么?
谢谢
阅读文档
.on()
并不总是绑定动态创建的元素;只有当你在:
$('some container').on('click', '.new-input', function() { ... });
同时,id必须是唯一的;
在创建keyup绑定时,dom上不会有匹配的元素-尝试将第二个绑定移动到第一个的回调中:
<script language="javascript">
$('#click').one('click', function () {
var html = $('<input type="text" class="input-mini" />');
html.on('keyup', function (e) {
alert('A key was pressed');
if (e.keyCode == 13) {
alert('Enter key pressed');
}
});
$(this).parent().append(html);
});
</script>
jsFiddle链接:http://jsfiddle.net/qTd9c/
$('#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');
}
});
});
相关文章:
- Input.checked创建需要绑定到输入的Dynamic元素
- Angularjs元素在一个调用中同时查找select和input-这是单个标记查找的极限
- 如何针对生成的所有动态表单的Input元素
- 如何调用“;点击“;输入类型“on input type”;文件“;通过调用其他元素的上下文
- 当元素持有input+标签时,如何将click事件注册到元素
- 通过单击SELECT选项,将文本INPUT元素的VALUE动态设置为默认值
- 不能在元素上创建checkboxradio.nodeName=input, element.type=text
- 使用INPUT的值并将其引用到DIV元素并appendTo()它
- 如何检查以确保所有的input:radio元素都有一个值?
- 如何更改input type="file"的按钮文本元素
- 如何在input extarea元素中接收选定文本的坐标
- 如何在不使用input元素的情况下捕获Vuejs中的任何按键事件
- 哪些浏览器支持在input[type="file"]元素上触发click事件
- 聚合物聚焦于纸张输入;或& lt; core-input>元素
- 如何从input 'type=text'元素使用jquery
- 如何获得输入< Input >文本元素值为<元素使用javascript和jquery
- 从代码生成的INPUT元素中选择文件后触发onChange事件
- 如何用Javascript选择INPUT元素
- JQuery:获取所有Input元素的ID、Value
- 关于:input元素的jQuery委托/触发器问题