是否有某种方法可以在禁用的 html 元素上调用悬停事件?我找到了包装 div 的解决方案,但效果不太好。
例如:
<input type="text" id="someidtext" value="somevalue" disabled="disabled" />
<select id="someidselect" disabled="disabled" >
$("#someidtext").mouseenter(function () {});
$("#someidselect").mouseenter(function () {});
谢谢
最佳答案
我认为最好的解决方案是检查处理程序内的条件。
$('#someidtext').mouseenter(function (event) {
if(!this.disabled){
console.log('x')
}
})
演示:Fiddle
如果这是不可能的,您可能需要考虑基于事件委托(delegate)的处理程序,例如
<div id="someidtext_wrapper">
<input type="text" id="someidtext" value="somevalue" disabled="disabled" />
</div>
然后
$('#someidtext_wrapper').on('mouseenter', 'input:not(:disabled)', function () {
console.log('x')
});
演示:Fiddle
注意:这些解决方案基于这样的假设:注册事件处理程序后禁用状态会动态更改
关于jquery - 不要在禁用的元素上调用悬停事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24757113/