有没有一种方法可以在 HTML 控件上触发的事件转发给控件本身进行默认(通用)处理之前捕获这些事件。就我而言,我想阻止元素下拉列表在用户单击控件时打开。例如在此用户单击时,将触发 OnClick() 事件并由打开下拉列表的默认控件处理。我想阻止这一切发生。
我能否将自定义函数附加到此事件并将事件处理重定向到此事件而不是打开下拉列表的默认代码?
谢谢
最佳答案
onclick、onmousedown 和 onmouseup 不会帮助您阻止打开选择框。我不是问你为什么要这样做,但如果你真的不能使用任何其他解决方案,例如(将选择框更改为只读输入框),那么,你可以尝试下一个解决方案。
防止框打开的一种方法是创建一个覆盖容器,它将阻挡选择的可聚焦区域。这可以通过将 div 放在选择框之后并为其指定选择框的大小和位置来实现。
<div style="position:relative;">
<select style="width:100px;height:30px">
<option>hello</option>
</select>
<div style="position:absolute;
left:0;
top:0;
width:100px;
height:30px;
z-index:2;
background-color:black;
opacity:0;filter:Alpha(Opacity='0');"
></div>
</div>
然后事件,它只适用于 IE >= 7。不适用于 IE6,因为 IE6 中的选择框很奇怪(也许你可以尝试用一些 iframe hack 修复 IE6);
关于html - 禁用在 HTML <SELECT> 控件上触发的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905858/