我有这段代码......
// 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'事件。这可能吗?我试过用'on'代替'live',但它没有用。
答案 0 :(得分:2)
您不能仅将live
替换为on
。如果您阅读了有关on
的文档,您会看到:
.on( events [, selector] [, data], handler(eventObject) )
因此,您可以按照以下方式使用on
:
$('.closest-parent').on('keyup', '.inputs input', function () { ... })
.closest-parent
是.inputs
最接近的父元素。通过使用最接近的父级而不仅仅是document
,您可以提高性能。
答案 1 :(得分:1)
这应该有效:
$(document).on('keyup', '.inputs input', function() {
var nav_width = $('#nav-width').val();
var sumOfVals = 0;
$('.inputs input').each(function () {
sumOfVals = sumOfVals + parseInt($(this).val());
});