Javascript onBlur不';当onClick以编程方式触发时,不会触发
我正在使用React组件:Javascript onBlur不';当onClick以编程方式触发时,不会触发,javascript,reactjs,events,Javascript,Reactjs,Events,我正在使用React组件: <div ref={tooltipContainer} onClick={() => { console.log('onclick'); }} onBlur={() => { console.log('onblur'); }} > // Hello </div> 但是,当我单击页面上的任何其他位置时,不会触发onBlur事件。如果没有提供contentEditable或tabindex=
<div
ref={tooltipContainer}
onClick={() => {
console.log('onclick');
}}
onBlur={() => {
console.log('onblur');
}}
>
// Hello
</div>
但是,当我单击页面上的任何其他位置时,不会触发
onBlur
事件。如果没有提供contentEditable
或tabindex=0
,那么显然div
没有onBlur
事件处理程序。但即使有了这些,你仍然需要一些调整
您希望使div
聚焦于单击,而以编程方式单击它不会使其聚焦,因此您必须在click()下添加tooltipContainer.current.focus()
constmydiv=document.querySelector(“#myDiv”);
myDiv.click();
myDiv.focus()代码>
#myDiv{
边框:1px纯绿色;
填充:1rem;
}
在框外单击
显然div
没有onBlur
事件处理程序,如果没有提供contentEditable
或tabindex=0
。但即使有了这些,你仍然需要一些调整
您希望使div
聚焦于单击,而以编程方式单击它不会使其聚焦,因此您必须在click()下添加tooltipContainer.current.focus()
constmydiv=document.querySelector(“#myDiv”);
myDiv.click();
myDiv.focus()代码>
#myDiv{
边框:1px纯绿色;
填充:1rem;
}
在框外单击代码>onBlur
在unfocus
时触发,并且代码中没有焦点。上面的注释只是意味着,在调用click event时必须设置焦点。OnBlur将自动触发。OnBlur
在unfocus
时触发,并且代码中没有焦点。上面的注释只是意味着,在调用click事件时必须设置焦点。OnBlur将自动触发。
useEffect(() => {
if (someCondition) {
tooltipContainer.current.click();
}
}, []);