一尘不染

使用jQuery检测元素内容更改

javascript

change() 函数可以工作并检测表单元素的更改,但是有没有一种方法可以检测DOM元素的内容何时更改?

这是行不通的,除非#content是表单元素

$("#content").change( function(){
    // do something
});

我希望在执行类似操作时触发此操作:

$("#content").html('something');

另外html()append()函数没有回调。

有什么建议么?


阅读 396

收藏
2020-04-25

共2个答案

一尘不染

我没有在jQuery中使用突变事件API,但是粗略的搜索使我进入了GitHub上的该项目。我不知道该项目的成熟度。

2020-04-25
一尘不染

我知道这篇文章已有一年的历史了,但是我想为遇到类似问题的人提供不同的解决方案:

  1. jQuery change事件仅在用户输入字段上使用,因为如果有其他操作(例如div),则该操作来自代码。因此,找到操作发生的位置,然后在其中添加所需的任何内容。

  2. 但是,如果由于某种原因(你使用的是复杂的插件或找不到“回调”的可能性)而无法实现,那么我建议的jQuery方法是:

一个。对于简单的DOM操作,请使用jQuery链接和遍历,$("#content").html('something').end().find(whatever)....

b。如果你想做其他事情,请使用bind带有自定义事件的jQuery 和triggerHandler

$("#content").html('something').triggerHandler('customAction');

$('#content').unbind().bind('customAction', function(event, data) {
   //Custom-action
});
2020-04-26