Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当文档位于禁用的元素上时,不会触发该文档的事件_Javascript_Html_Dom_Frontend_Dom Events - Fatal编程技术网

Javascript 当文档位于禁用的元素上时,不会触发该文档的事件

Javascript 当文档位于禁用的元素上时,不会触发该文档的事件,javascript,html,dom,frontend,dom-events,Javascript,Html,Dom,Frontend,Dom Events,当我给文档一个mouseup事件时,如果鼠标处于禁用元素中,我释放了按钮。文档mouseup事件处理程序无法启动。 我应该如何让处理程序被调用 例如: document.addEventListener('mouseup',()=>{ console.log('mouseup') },对) const changeBtn=document.getElementById('change') const testBtn=document.getElementById('test') changeB

当我给文档一个
mouseup
事件时,如果鼠标处于禁用元素中,我释放了按钮。文档
mouseup
事件处理程序无法启动。 我应该如何让处理程序被调用

例如:

document.addEventListener('mouseup',()=>{
console.log('mouseup')
},对)
const changeBtn=document.getElementById('change')
const testBtn=document.getElementById('test')
changeBtn.onclick=()=>{
testBtn.setAttribute('disabled',true)
}
testBtn.onclick=()=>{
console.log('testBtn click')
}
测试
使用元素上的CSS集更改

document.addEventListener('mouseup',()=>{
console.log('mouseup')
},对)
const changeBtn=document.getElementById('change')
const testBtn=document.getElementById('test')
changeBtn.onclick=()=>{
testBtn.setAttribute('disabled',true)
}
testBtn.onclick=()=>{
console.log('testBtn click')
}
*:禁用{
指针事件:无;
}
测试

更改
谢谢,但还有其他方法吗?我可能不希望它触发冒泡或捕获,它的副作用一定太大了,导致
指针事件:none
使元素对鼠标事件透明。如果不想使用捕获,请不要将
true
设置为
addEventListener
的第二个参数。我只希望文档触发事件。我不希望他的父元素触发事件,但使用指针事件:无将导致父元素也触发事件。我将addEventListener的第三个属性设置为false,但事件的父元素仍然会触发这是一个棘手的问题。您可以使用
.closest()
将排除禁用元素或其子元素的检查添加到父级的事件处理程序中。