这适用于 JSFiddle(参见http://jsfiddle.net/MygJC/4/),但不想在我的 JQuery Mobile(1.2.1)和 Phonegap(Cordova 2.3)应用程序中触发:
<div id='cont-sum-fields'>
<input type="number" id="cont-sum-1" />
<input type="number" id="cont-sum-2" />
<input type="number" id="cont-sum-3" />
<input type="number" id="total-cont-sum" disabled />
$('div#cont-sum-fields').on('change', 'input', function() {
var total = 0;
$(this).parent().children('input[id^="cont-sum"]').each(function() {
if ($(this).val() !== "") total += parseFloat($(this).val());
});
$(this).parent().children('#total-cont-sum').val(total);
});
知道为什么吗?
编辑
这似乎是一个更广泛的问题,与动态插入的 DOM 元素的 JQuery 事件处理程序有关。我在插入 DOM 元素后重新触发页面创建,但这还不够。进一步调查。