如何解决Javascript“ onmousedown”没有触发
我正在尝试在元素“ onmousedown”上运行一个函数。这是代码:
<label class="switch">
<input type="checkbox" onmousedown="console.log('Run the function');
manageBook(this);" id="element-id-52" data-mode= "offx">
<span class="slider round"></span>
</label>
但是,当我单击滑块时,没有看到console.log()消息或函数正在运行。知道是什么原因造成的吗?
解决方法
由于仅将鼠标向下放在仅会监听事件的输入元素上,因此,如果将鼠标向下移动到<label class="switch">
,则子元素中的事件也会冒泡到该元素,并且所有3个事件都将覆盖事件元素
尝试将侦听器添加到标签而不是输入元素。
<label
class="switch"
onmousedown="console.log('Run the function'); manageBook(this);
>
,
输入onmousedown
运行良好,您可以将侦听器移至父块以获取成功
const manageBook=(input)=>{
console.log('manage book',input);
};
const withSpan=(a)=>{
console.log('with span',a);
};
<label class="switch" onmousedown="withSpan(this);">
<input type="checkbox" onmousedown="console.log('Run the function');manageBook(this);" id="element-id-52" data-mode="offx">
<span class="slider round">aaaa</span>
</label>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。