jQuery没有在禁用的按钮上触发悬停事件吗?

jQuery没有在禁用的按钮上触发悬停事件吗?,jquery,html,forms,button,twitter-bootstrap,Jquery,Html,Forms,Button,Twitter Bootstrap,我正在实现一个表单,我想禁用一个按钮,并显示一个工具提示,解释为什么它在悬停时被禁用。但是,当禁用按钮时,工具提示不会显示 我在这里添加了一个测试用例,仅使用jQuery复制: jQuery似乎没有触发事件,或者浏览器没有触发悬停事件 我正在使用jQuery,当然还有 注意:我也尝试过用一个包裹在按钮上的方法——但它似乎会吞没悬停状态,我也尝试过使用一个输入元素,达到同样的效果。你可以在按钮上放置一个透明的覆盖层,并在上面放置工具提示 在小提琴中,我将颜色设置为蓝色,这样你就可以看到发生了什么

我正在实现一个表单,我想禁用一个
按钮
,并显示一个工具提示,解释为什么它在悬停时被禁用。但是,当禁用
按钮时,工具提示不会显示

我在这里添加了一个测试用例,仅使用jQuery复制:

jQuery似乎没有触发事件,或者浏览器没有触发悬停事件

我正在使用jQuery,当然还有


注意:我也尝试过用一个包裹在按钮上的方法——但它似乎会吞没悬停状态,我也尝试过使用一个
输入
元素,达到同样的效果。

你可以在按钮上放置一个透明的覆盖层,并在上面放置工具提示


在小提琴中,我将颜色设置为蓝色,这样你就可以看到发生了什么。覆盖层的宽度和高度可以根据需要进行调整,也可以在js中进行动态调整。

一种可能的解决方案是只准备好:

<button id="disabledbutton" readonly="readonly">Disabled Button</button>

按照詹姆斯的指导,我试过这样做

<div id="wrapper">
<button id='overlay'>BUTTON</button>
<button disabled>BUTTON</button></div>

#overlay{
position: absolute;
opacity: 0;}

按钮
按钮
#覆盖层{
位置:绝对位置;
不透明度:0;}
我在旧的按钮前面放了一个带有相同文本的假按钮,并将id设置为它。在css中,我设置了一个位置,让这个新按钮与包装器相对,这样这个新按钮将被放置在与禁用按钮相同的空间中

这是我的小提琴:

添加“禁用ui按钮”和“禁用ui状态”类,使其看起来像一个禁用的按钮,并在单击功能中检查这些选项以确定状态。当您需要启用的外观时将其删除。

这可能会有所帮助

<style>
 .btn{
   padding: 0 !important; // or get padding size of .btn
 }

 .button{
  padding: 8px 30px 6px;
 }
</style>

<body>
 <button type="submit" id="submit_form" class="btn" disabled/>
  <div class="button">Submit</div>
 </button>

 <script>
  $('.button').hover(function (){
    // place code here
  });
 </script>
</body>

.btn{
填充:0!重要;//或获取.btn的填充大小
}
.按钮{
填充:8px 30px 6px;
}
提交
$('.button')。悬停(函数(){
//把代码放在这里
});
$('#disabledbutton').click(function() { return false; } );
<div id="wrapper">
<button id='overlay'>BUTTON</button>
<button disabled>BUTTON</button></div>

#overlay{
position: absolute;
opacity: 0;}
<style>
 .btn{
   padding: 0 !important; // or get padding size of .btn
 }

 .button{
  padding: 8px 30px 6px;
 }
</style>

<body>
 <button type="submit" id="submit_form" class="btn" disabled/>
  <div class="button">Submit</div>
 </button>

 <script>
  $('.button').hover(function (){
    // place code here
  });
 </script>
</body>