A configuração do atributo desactivado num elemento de regulação da sensibilidade não impede que carregue em eventos

tenho um elemento <span> que faz alguma coisa num evento click.

quando o desactivar, usando jQuery:

$("span").attr("disabled", true);

o manipulador de eventos continua a ser chamado quando eu clicar no elemento span.

Estou a testar no cromado 13. Alguma ideia?

Author: ashik, 2011-07-12

6 answers

Tenta isto:

$("span").css("pointer-events", "none");

Você pode ativá-los de volta por

$("span").css("pointer-events", "auto");
 48
Author: David Espino, 2014-12-31 16:52:57

O atributo disabled não é global e só é permitido nos controlos de formulários. O que você poderia fazer é definir um atributo de dados personalizado (talvez data-disabled) e verificar para esse atributo quando você lidar com o evento clique.

 7
Author: You, 2011-07-11 22:43:12

O comportamento padrão do atributo desactivado só acontece para os elementos do formulário. Tente desbloquear o evento:

$("span").unbind("click");
 7
Author: Justin ᚅᚔᚈᚄᚒᚔ, 2011-07-11 22:46:05
Tente desvendar o evento. Aqui está o violino
 5
Author: Rafay, 2018-07-12 09:43:08
Há um truque sujo que usei:

Estou a usar 'bootstrap', por isso adicionei .disabled classe ao elemento que quero desactivar. Bootstrap trata do resto das coisas.

A sugestão é bem-vinda.

Adicionar a classe no tempo de execução:

$('#element').addClass('disabled');
 1
Author: MY - Joker Coder, 2018-07-12 09:57:35

O melhor método é embrulhar a extensão dentro de um botão e desactivar o botão

$("#buttonD").click(function(){
  alert("button clicked");
})

$("#buttonS").click(function(){
  alert("span clicked");
})
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" />


<button class="btn btn-success" disabled="disabled" id="buttonD">
    <span>Disabled button</span>
</button>

<br>
<br>

 <span class="btn btn-danger" disabled="disabled" id="buttonS">Disabled span</span>
 -1
Author: ashik, 2018-07-12 09:31:55