使用 jQuery 检测元素内容更改

2022-08-30 05:34:52

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

这不起作用,除非 是表单元素#content

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

我希望在执行以下操作时触发此操作:

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

也或函数没有回调。html()append()

有什么建议吗?


答案 1

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

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

  2. 但是,如果由于任何原因(您正在使用复杂的插件或找不到任何“回调”可能性)而无法做到这一点,那么我建议的jQuery方法是:

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

    b.如果你想做其他事情,使用jQuery的自定义事件和bindtriggerHandler

    $("#content").html('something').triggerHandler('customAction');
    
    $('#content').unbind().bind('customAction', function(event, data) {
       //Custom-action
    });
    

下面是指向 jQuery 触发器处理程序的链接:http://api.jquery.com/triggerHandler/


答案 2

这些是突变事件

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