Old Way (pré-1.7):
$("...").attr("onclick", "").unbind("click");
Novo Caminho (1.7+):
$("...").prop("onclick", null).off("click");
(Substitua ... pelo seletor de que você precisa.)
// use the "[attr=value]" syntax to avoid syntax errors with special characters (like "$")
$('[id="a$id"]').prop('onclick',null).off('click');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a id="a$id" onclick="alert('get rid of this')" href="javascript:void(0)" class="black">Qualify</a>
Removing an inline onclick event handler using .removeAttr() doesn't achieve the desired effect in Internet Explorer 6, 7, or 8. To avoid potential problems, use .prop() instead
.prop()
para o IE11 também.Eu sei que isso é muito antigo, mas quando um estranho perdido encontra essa pergunta em busca de uma resposta (como eu fiz), então esta é a melhor maneira de fazer isso, em vez de usar removeAttr ():
Citando o doku oficial do jQuerys :
fonte
<span onlick="method()">sometext>/span>
O evento é totalmente desvinculado e funciona muito bemRemovendo
onclick
propriedadeSuponha que você tenha adicionado seu evento de clique embutido, assim:
Então, você pode remover o evento assim:
Removendo
click
ouvintes de eventosSuponha que você tenha adicionado seu evento de clique definindo um ouvinte de evento, como este:
... ou assim:
Então, você pode remover o evento assim:
Removendo ambos
Se não tiver certeza de como seu evento foi adicionado, você pode combinar os dois, desta forma:
fonte
se você estiver usando jquery 1.7
outro
fonte
É muito fácil usar removeAttr.
fonte
Depois de tentar tanto com bind, unbind, on, off, click, attr, removeAttr, prop eu fiz funcionar. Portanto, tenho o seguinte cenário: No meu html, NÃO anexei nenhum manipulador onclick embutido.
Então, em meu Javascript, usei o seguinte para adicionar um manipulador onclick embutido:
Para remover isso mais tarde do Javascript, usei o seguinte:
Esta é a maneira que funcionou para mim vincular e desvincular eventos de clique dinamicamente em Javascript. Lembre-se de NÃO inserir nenhum manipulador onclick embutido em seus elementos.
fonte
.on('click', myFunction)
(note que nãomyFunction
está entre aspas) e, mais tarde,.off('click')
E se o evento onclick não estiver diretamente no elemento, mas no elemento pai? Isso deve funcionar:
fonte
Tente fazer isso se você desvincular o evento onclick por ID. Em seguida, use:
Tente fazer isso se você desvincular o evento onclick pela classe. Em seguida, use:
fonte