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()
将排除禁用元素或其子元素的检查添加到父级的事件处理程序中。