Jquery On 而不是 Live 用于动态输入

标签 jquery jquery-on

我有这个代码...

// Display number of pixels left from nav width
$('.inputs input').live('keyup',function() {
    var nav_width = $('#nav-width').val();
    var sumOfVals = 0;
    $('.inputs input').each(function () {
    sumOfVals = sumOfVals + parseInt($(this).val());
});
sumOfVals = nav_width - sumOfVals;
    $('#px-left em').html(sumOfVals);
});

它需要在动态添加的输入字段的 keyup 事件上执行,但我想使用“on”事件。这可能吗?我尝试过将“live”替换为“on”,但没有成功。

最佳答案

您不能仅将 live 替换为 on。如果您阅读有关 on 的文档你会看到这个:

.on( events [, selector] [, data], handler(eventObject) )

因此,按照以下方式,您可以像这样使用 on :

$('.closest-parent').on('keyup', '.inputs input', function () { ... })

.closest-parent 是距离 .inputs 最接近的父元素。通过使用最接近的父级而不是仅仅文档,您可以提高性能。

关于Jquery On 而不是 Live 用于动态输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892561/

相关文章:

javascript - jQuery .on ("click") - 替代 .live()

jquery - 点击一个按钮触发另一个按钮的点击事件

javascript - 'click' 上的 jQuery 在更改为 Bootstrap 表后未触发

更新多个表行内容时的 JavaScript 加载器

javascript - Jqgrid 动画打开/关闭子网格,如 jquerUi Accordion

jquery - 是什么原因导致类型错误: undefined is not a function?

javascript - 通过 JS 更新值时,jQuery on change/input 不起作用

javascript - 如何将动画设置为图像后面的 div?

dom - 使用 JQuery event.target 与 child 一起工作

jQuery:使用 .on() 而不是 .live() 将事件处理程序附加到 $ ('selector' ) 对象