Подтвердить что ты не робот

Не активирует ли jQuery событие нападающего при отключенной кнопке?

Я реализую форму, в которой я хочу отключить button и показать всплывающую подсказку, объясняющую, почему она отключена при зависании. Однако, когда параметр button отключен, всплывающая подсказка не отображается.

Я добавил здесь тестовый пример, воспроизводя с помощью только jQuery: http://jsfiddle.net/BYeFJ/1/

Кажется, что jQuery не запускает событие или браузер не запускает событие hover?

Я использую Модуль подсказок Bootstrap Twitter и, конечно же, jQuery.

NB: Я также пробовал это с оберткой вокруг кнопки, но он проглатывает состояние зависания, и я также попытался использовать элемент input, чтобы тот же эффект.

4b9b3361

Ответ 1

Вы можете поместить прозрачную надпись над кнопкой и поместить туда всплывающую подсказку.

http://jsfiddle.net/yL2wN/

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

#wrapper{
    position: relative;   
}
#overlay{
    position: absolute;        
    top: 0;
    left: 0;

    opacity: .1;
    height: 20px;
    width: 70px;
}​

В скрипке я установил синий цвет, чтобы вы могли видеть, что происходит. Ширина и высота наложения могут быть отрегулированы по мере необходимости или сделаны динамическими в js.

Ответ 2

Одним из возможных решений является только его готовность:

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

Затем измените css, чтобы выглядеть отключенным и переопределить onclick, чтобы предотвратить любое действие:

$('#disabledbutton').click(function() { return false; } );

Ответ 3

Добавьте классы "ui-button-disabled" и "ui-state-disabled", чтобы они выглядели как отключенная кнопка и проверяли их в функции щелчка, чтобы определить состояние. Удалите их, когда вам нужен разрешенный вид.

Ответ 4

Это может помочь

<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>

Ответ 5

Следуйте руководству Джеймса, я пробовал вот так

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

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

Я помещаю поддельную кнопку с тем же текстом перед старым и устанавливаем идентификатор. В css я установил положение, чтобы эта новая кнопка стала относительной с оболочкой, так что эта новая кнопка будет помещена в одно и то же пространство с отключенной кнопкой.

Вот моя скрипка: http://jsfiddle.net/p2j041Ln/