我想在div的内容发生变化时创建一个事件,该事件被调用..
change = function(oldval,newval){
if (oldval != newval){
return true;
}
return false;
}
我希望每当div的内容发生变化时调用此函数。不知道我怎么能实现这个目标?
答案 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;
}
});