我有一个跨度:

<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指出这一点。

09-26 04:35