我想通过jquery动态添加输入标签添加到我的页面但是当添加它时“keyup”事件不起作用,但是当通过硬编码向页面添加输入时它可以工作。
我通过firebug查看我的代码,每一件事情都可以,但是当我要通过“.txtbox”类定义所有元素的页面时,我会这样做。当我添加另一个dinamically时,不是这个事件。
我该如何处理这个问题?
var i = 0;//generate a number for id
function addit() {
i = i + 1;
//this line add dynamic input to a div with class ".x"
$(".x").prepend('<input id=\'Text1' + i + '\' value=\'' + i+ '\' type=\'text\'
class=\'txtbox\' /><br />');
}
//when page load all ".txtbox" classes get "keyup" event
$(function ()
{
$('.txtbox').keyup(function(e){
if (e.keyCode == 13) {
alert("hi");
}
});
});
//html codes
<input id="Button1" type="button" value="add it" onclick="addit()" />
<div class="x">
<input id="Text11" value="1" type="text" class="txtbox" /><br />
</div>
答案 0 :(得分:2)
将.on()与事件委派
一起使用 $('.x').on("keyup",".txtbox",function(e){
if (e.keyCode == 13) {//here you use e.which then it will good
alert("hi");
}
});
使用 event.which
event.which属性规范化event.keyCode和event.charCode。建议观看event.which键盘输入键。