访问代码生成的输入元素上的keyup事件
Access keyup event on input element generated by code
在我的项目中,我生成包含输入字段的div元素,其中包含给定搜索参数的数据库中的请求-响应数据。我需要能够在上面使用keyup事件来做一些额外的工作,但是当使用append生成输入时,类选择器不起作用,即使它有正在检查的类。
我创建了一个CodePen来演示它:http://codepen.io/leofontes/pen/PNgabB?editors=1111
HTML
<div class="container" id="container">
<button id="button">Click</button><br>
</div>
CSS
.container {
background-color: #F00;
height: 200px;
width: 200px;
}
.dynamic-input {
margin: 5px;
}
Javascript/jQuery
$(document).ready(function () {
$('#button').click(function() {
for(var i = 0; i < 5; i++) {
$('#container').append('<input type="text" class="dynamic-input">')
}
});
$('.dynamic-input').keyup(function() {
console.log($(this).val());
});
});
jQuery代码运行得很好,我用$(document).ready函数中生成的输入对它进行了测试,它达到了我的预期,我不明白为什么以后生成时没有
我还试着用已经加载了HTML的类进行隐藏输入,但这也不起作用。
感谢所有想法或建议,
动态生成的元素需要事件委派。
$('#container').on('keyup', '.dynamic-input', function () {
console.log($(this).val());
});
试试这个:
$(document).ready(function () {
$('#button').click(function() {
for(var i = 0; i < 5; i++) {
$('#container').append('<input type="text" class="dynamic-input">')
}
});
$(document).on('keyup', '.dynamic-input', function() {
console.log($(this).val());
});
});
问题是创建按钮与创建绑定是分开的。您应该做的是创建输入AND,将单击事件绑定为回调的一部分。现在,您正在正确地绑定元素,从语法角度来看,但它还不存在。所以,你想要的是。
$(document).ready(function () {
$('#button').click(function() {
for(var i = 0; i < 5; i++) {
$('#container').append('<input type="text" class="dynamic-input">')
}
//You're still within the scope of the callback, so this is the appropriate location
$('.dynamic-input').on('keyup, function() {
console.log($(this).val());
});
});
这是因为在创建元素之前执行了jquery绑定。当执行CCD_ 1时。单击按钮后创建的输入还不存在。
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 访问代码生成的输入元素上的keyup事件
- jQuery调用keyup事件不起作用
- jQuery keyup事件增加-“;函数“;将设置为0
- Keyup事件在easyui上不起作用
- 将变量传递到keyup事件内部
- JS在input标签上使用keyup事件进行搜索
- Keyup 事件侦听器在 Chrome 的 Ominbox 上按下 Enter 时触发
- 如何将 fn 去抖动实现到 jQuery keyup 事件中
- 如何在 keyup 事件上匹配数组中的字符串
- 为什么在Mac浏览器上按下metaKey时,Javascript会丢弃keyUp事件
- jQuery,keyup事件未启动
- 在keyup事件中指定click事件处理程序会导致click事件被多次激发
- 如何在发送keyup事件时避免出现比赛情况
- 通过jQueryAJAX和keyup事件搜索特定的术语
- 在文本区域中的Keyup事件上触发Twitter Bootstrap Popover
- 如何从jQuery插件中附加keyup事件
- jQuery Keyup 事件仅在页面加载时调用
- 黑莓网站:onHardwareKey keyUp 事件
- 如何在 EaselJS 中实现 Keyup 事件