我想要观察使用contenteditable编辑的元素的nodeValue更改。基本上,我想在更改nodevalue时运行一个函数。
我发现这篇文章: http://james.padolsey.com/javascript/monitoring-dom-properties/
这似乎有我想要的插件。
这是手表插件:
jQuery.fn.watch = function( id, fn ) {
return this.each(function(){
var self = this;
var oldVal = self[id];
$(self).data(
'watch_timer',
setInterval(function(){
if (self[id] !== oldVal) {
fn.call(self, id, oldVal, self[id]);
oldVal = self[id];
}
}, 100)
);
});
return self;
};
作为一个例子,我可以像这样观察输入值:
$('#input').watch('value', function(propName, oldVal, newVal){
$("#text").text(newVal);
});
但不是contenteditable的nodevalue(其文本内容):
$('#ce').watch('nodeValue', function(propName, oldVal, newVal){
$("#text").text(newVal);
});
以下是实例:
任何人都知道如何调整watch方法以使用nodevalue。谢谢!
答案 0 :(得分:0)
这不是更简单吗?
$('#ce')
.bind('change keyup',
function() {
$('#text')
.text($(this).text());
}
);
至于输入:
$('#input')
.bind('change keyup',
function() {
$('#text')
.text($(this).val());
}
);