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

时间:2012-02-05 08:29:09

标签: javascript jquery events

我想在div的内容发生变化时创建一个事件,该事件被调用..

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

我希望每当div的内容发生变化时调用此函数。不知道我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:1)

  

我希望每次元素内容发生变化时调用此函数

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

一行代码:

$(':input', $('#divId')).change(function(){alert('changed');});

或动态添加元素的委托选项(仍然是一行...... (; ):

$('#divId').on('change', ':input', function(){ alert('changed');});

docs:

答案 1 :(得分:1)

如果您不打算支持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;
  }
});