Jquery .keypress 动态添加的输入

标签 jquery keypress textinput dynamic-forms

我当前正在通过 .click 事件添加输入,然后想要监听此输入上发生的任何按键。但是,附加内容在插入后不会触发任何事件(即模糊、按键、焦点)。有没有人有什么建议?提前致谢!

$("#recipientsDiv").click(function(){
    $(this).append('< input type="text" id="toInput" class="inlineBlockElement" style="border:0px none #ffffff; padding:0px; width:20px; overflow:hidden;" />')
    $("#toInput").focus();
});
$("input").keypress(function(e){
    var inputStr = $(this).html();
    $("#inputCopier").text(inputStr);
    var newWidth = $("#inputCopier").innerWidth;
    $(this).css("width", newWidth);
});
$("#toInput").blur(function(){
    $("#toInput").remove();
});

我也尝试过 .keyup .keydown ,但它们不起作用。

最佳答案

您的 keypress 处理程序只会添加到您添加它时存在的元素中。

您需要调用live方法将其添加到与选择器匹配的每个元素,无论何时添加。

例如:

$("input").live('keypress', function(e){
    var inputStr = $(this).html();
    $("#inputCopier").text(inputStr);
    var newWidth = $("#inputCopier").innerWidth;
    $(this).css("width", newWidth);
});

关于Jquery .keypress 动态添加的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983204/

相关文章:

javascript - 根据 setInterval 值将 div 增长至 100%

python - 将输入发送到直接输入(如游戏)

javascript - 如何在html文本输入中只允许输入冒号分隔的2位数字?

jQuery 选择的插件样式不正确。很小

javascript - Json第一个对象是一个*,如何获取?

javascript - 限制 IFrame 中的输入按键事件不起作用

java - 如何在 Selenium 中按下2个键

python - 只允许 float ,带有一位小数点和负号(Python/Kivy/Regex)

c++ - 是否可以使用 select(2) 来监视 SDL 文本输入事件?

javascript - 如果我在 jquery datepicker 中使用 onSelect 则获取未定义的数据