Javascript 如何使用jquery创建自定义事件

Javascript 如何使用jquery创建自定义事件,javascript,jquery,events,Javascript,Jquery,Events,我想创建一个事件,当div的内容更改时,该事件称为 change = function(oldval,newval){ if (oldval != newval){ return true; } return false; } 我希望每次div的内容发生变化时都调用这个函数。你知道如何实现吗 我希望每次元素内容更改时都调用此函数 如果元素的内容等于表单输入的值: 单行代码: $(':input', $('#divId')).change(function

我想创建一个事件,当div的内容更改时,该事件称为

change = function(oldval,newval){
    if (oldval != newval){
        return true;
    }
    return false;
}
我希望每次div的内容发生变化时都调用这个函数。你知道如何实现吗

我希望每次元素内容更改时都调用此函数

如果元素的内容等于表单输入的值:

单行代码:

$(':input', $('#divId')).change(function(){alert('changed');});
或者动态添加元素的委托选项(仍然是一行…(;):

文档:


如果您不打算支持IE,您可以使用DOMNodeInserted和DOMNodeRemoved检查是否从您的div中添加或删除元素

$('#yourDiv').bind('DOMNodeInserted DOMNodeRemoved', function(event, oldvalue, newvalue) {
   if (oldval != newval){
        return true;
    }
    return false;
});
对于IE支持,您可以使用

$(function() {
  var $div = $("#yourDiv");
  var content = $div.html();
  var look = setInterval(function() {
    var newcontent = $div.html();
    if (html != newcontent ) {
      change(content, newcontent); 
      content = newcontent;
    }
  },100);

  function change(oldval, newval() {
     if (oldval != newval){
        return true;
    }
    return false;
  }
});

可能重复。其中的一些答案链接到可能解决您问题的jQuery插件。但是,处理DOM变异事件通常比看起来更复杂。为什么会进行投票?当
的内容更改时,它不会引发事件,但当它内的表单控件的值更改时,这不是s完全一样。最后一句话甚至不完整…@FrédéricHamidi。我肯定这就是质询所有者的意思。“元素的内容改变”事实上,
div的内容改变了
,而不是div内表单控件的值改变了。我担心提问者正在寻找前者(突变事件),不是后者…@FrédéricHamidi。我们将等待问题所有者的回答……无论如何,这是一个好答案,这个问题还不够清楚。@FrédéricHamidi。“元素的内容更改”而不是“div的内容更改”!
oldvalue,newvalue
值从何而来?!
$(function() {
  var $div = $("#yourDiv");
  var content = $div.html();
  var look = setInterval(function() {
    var newcontent = $div.html();
    if (html != newcontent ) {
      change(content, newcontent); 
      content = newcontent;
    }
  },100);

  function change(oldval, newval() {
     if (oldval != newval){
        return true;
    }
    return false;
  }
});