Javascript onblur不能正常工作

Javascript onblur not working properly

本文关键字:工作 常工作 onblur 不能 Javascript      更新时间:2023-09-26

我试图创建一个函数,将允许一个div被编辑,当不再集中(如点击元素外),它应该执行一个函数。

在小提琴中测试时,没有出现预期的响应。相反,当元素被点击时,它会使内容可编辑,并同时执行onblur函数。

知道为什么会这样吗?

https://jsfiddle.net/kz29f77z/

<div id="targetdiv">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>

$('#targetdiv').click(function(){
    this.setAttribute('contenteditable', 'true');
    this.onblur(alert());
});

this.onblur(alert()); 调用 alert()然后将其返回值传递给onblur,就像foo(bar()) 调用 bar然后将其返回值传递给foo一样。

相反,您将分配一个函数给onblur (this.onblur = function() { alert(); };)。但更好的是,将它与现代事件处理连接起来。因为您使用的是jQuery,所以它看起来像这样:

$(this).on("blur", function() {
    alert();
});