我有一个跨度:
<span class="basket_amount">65.70</span>
此范围通过外部脚本更新。
如果金额发生变化,我想触发一个javascript函数。
$(document).ready(function(){
$('.basket_amount').on('change', function() {
versandkosten();
});
});
当前它不起作用。但为什么?
非常感谢!
最佳答案
如果可能的话,我将尝试从其他脚本中调用所需的函数。但是,如果您真的想听元素上的更改,则可以使用DOMSubtreeModified
。如果您通过jQuery更改内容,尽管它将两次调用您的函数!因此,请使用 Vanilla JavaScript更改内容。
function versandkosten() {
console.log('called versandkosten');
}
$(document).ready(function(){
var $basketAmount = $('.basket_amount');
$basketAmount.bind("DOMSubtreeModified", versandkosten);
// test changing the content of the element via JavaScript
$basketAmount[0].innerHTML = 77;
// changing it via jQuery would call it twice!
// $basketAmount.html(77);
});
fiddle :https://jsfiddle.net/9our3m8a/
编辑:虽然这仍然可以工作,但是请注意
DOMSubtreeModified
已被弃用,另请参见Mozilla Doc。感谢@LuisEduardox指出这一点。