使用jquery检测变量更改

时间:2016-04-22 13:54:18

标签: javascript jquery

我对我的服务器进行AJAX调用以读取文件并将值作为响应返回。如果请求成功,那么我将id <p>的{​​{1}}元素中的innerHTML替换为响应值。现在,如果值已更改,我会尝试每次都发出警报。我尝试将一个事件添加到我的output元素中,这样我就可以检测变量是否已更改并触发我的函数:

<p>

没有<p id="output"></p> <script> $("#output").change(function() { alert("HELLO WORLD!"); }); </script> 出现。

2 个答案:

答案 0 :(得分:3)

更改元素的文本/ HTML值不会引发事件。您需要手动触发一个。例如:

// in the $.ajax success handler:
$('#output').trigger('contentchanged');

// event handler
$("#output").on('contentchanged', function() {
    alert("HELLO WORLD!");
});

您也可以使用Mutation Observer,但请注意旧版浏览器不支持它们,例如IE10及更低版本。

答案 1 :(得分:2)

根据您描述的逻辑,只有在ajax成功时才会更改内容。如果是这样,那么最简洁的解决方案就是,在你的ajax成功中,运行你期望在内容更改上运行的功能吗?