我正在编写一个脚本来监听属性contenteditable
并模拟更改的处理程序。并且代码运行多次。我不确定为什么会这样。Edit2:更新了解决问题的代码。代码如下所示:
Event.observe(window, 'load', init, false);
function init() {
makeEditable('myeditablediv');
}
function makeEditable(id) {
Event.observe(id, 'click', function(){test($p(id))}, false);
}
function test(obj) {
var pre = obj.innerHTML;
$(obj).one("focusout", function(){
newcontent = obj.innerHTML
alert(pre + ' ' + newcontent);
if (newcontent !== pre) {alert('content is not the same')};
});
}
这最初是一个原型脚本,这就是为什么$p
我不得不改变它的选择器,因为我也使用 jQuery。
在test()
我输出之前的值,然后是新的值。然后我尝试比较这两者。下次我单击元素myeditablediv
时,会显示以前的变量,然后显示新变量。我第三次点击,前两次,然后是新的第三次。等等等等。我敢打赌你们中的一些人现在已经准备好了你的脸,但我还不够好,无法发现这一点。是因为Event.observe
? 编辑:编辑了 if 语句。