在Jquery上复制文本字段
我试图在用户每次按enter键时在页面上插入一个新的文本字段 我的代码在Jquery上复制文本字段,jquery,Jquery,我试图在用户每次按enter键时在页面上插入一个新的文本字段 我的代码 $(":text").on("keypress", function(e) { if (e.keyCode == '13') { e.preventDefault() $(this).after("<p><input type='text' class='textfield' maxlength='10' value=''/> <span></span
$(":text").on("keypress", function(e) {
if (e.keyCode == '13') {
e.preventDefault()
$(this).after("<p><input type='text' class='textfield' maxlength='10' value=''/> <span></span> </p>")
}
});
当我在原始文本字段上按enter键时,会出现一个新的文本字段,但新的文本字段不会对任何按下做出反应。我假设on函数类似于live,这应该可以解决此类问题。怎么了?您需要为新添加的元素执行事件委派
通过使用on函数
例:
请参考下面的代码
$(".textfield").live("keypress", function (e) {
if (e.keyCode == '13') {
e.preventDefault();
$(this).after("<p><input type='text' class='textfield' maxlength='10' value=''/> <span></span> </p>")
}
});
您可以将事件委托给精确的元素。这意味着新创建的元素处于冷态。您需要将bind keypress绑定到外部容器并将其约束到文本字段。您能解释一下downvote的原因吗?在jquery的1.7版本中引入了On。Live已从1.7中弃用。因此,您可能正在使用早于1.7版本的jquery。
$(".textfield").live("keypress", function (e) {
if (e.keyCode == '13') {
e.preventDefault();
$(this).after("<p><input type='text' class='textfield' maxlength='10' value=''/> <span></span> </p>")
}
});