繁体   English   中英

如何防止事件在子元素中被激活?

[英]How can I prevent an event from being activated in a child element?

我希望不要在输入中激活该事件。

我的代码html

<header>
    <nav class="titlebar" ondblclick="test()">
       <input class="box" type="text">
       <hr> 
    </nav>
</header>

我的代码js

function test() {
alert('holi')

}

您可以有条件地检查输入。 如果要避免使用更多元素,可以检查诸如类名之类的特征。

 function test(e) { if(e.target instanceof HTMLInputElement && e.target.type == 'text') { console.log("INput clicked"); } else { console.log("somewhere else"); } } 
 <header> <nav class="titlebar" ondblclick="test(event)"> <input class="box" type="text"> <hr> </nav> </header> 

另一种方法是将侦听器附加到child元素:

 function test() { console.log("clicked container"); } function stop(event) { event.stopPropagation(); //Stops propagation to parent } 
 <header> <nav class="titlebar" ondblclick="test(event)"> <input class="box" type="text" ondblclick="stop(event)"> <hr> </nav> </header> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM