Pregunta

Código PHP:

<a id="a$id" onclick="check($id,1)" href="javascript:void(0)"  class="black">Qualify</a>

Quiero eliminar la onclick="check($id,1) por lo que el vínculo no se puede hacer clic o "check($id,1) no se disparará. ¿Cómo puedo hacerlo con jQuery?

¿Fue útil?

Solución

Camino Viejo (pre-1.7):

$("...").attr("onclick", "").unbind("click");

nueva forma (1.7 +):

$("...").prop("onclick", null).off("click");

(Reemplazar ... con el selector que necesita.)

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

Otros consejos

Sé que esto es bastante antiguo, pero cuando un extraño perdido encuentra esta pregunta buscando una respuesta (como yo) entonces esta es la mejor manera de hacerlo, en lugar de utilizar removeAttr ():

$element.prop("onclick", null);

jQuerys oficial Doku :

  

"Extracción de un controlador de línea evento onclick usando .removeAttr () no lograr el efecto deseado en Internet Explorer 6, 7, u 8. Para evitar posibles problemas, utilice .prop () en lugar"

si está utilizando jQuery 1.7

$('html').off('click');

else

$('html').unbind('click');

Eliminación de propiedad onclick

Supongamos que ha añadido su evento en línea clic, así:

<button id="myButton" onclick="alert('test')">Married</button>

A continuación, se puede eliminar el evento como este:

$("#myButton").prop('onclick', null); // Removes 'onclick' property if found

Eliminación de detectores de eventos click

Supongamos que ha añadido a su evento de clic mediante la definición de un detector de eventos, así:

$("button").on("click", function() { alert("clicked!"); });

... o como esto:

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

A continuación, se puede eliminar el evento como este:

$("#myButton").off('click');          // Removes other events if found

Eliminación de ambos

Si no está seguro de cómo se ha añadido su evento, puede combinar tanto, de esta manera:

$("#myButton").prop('onclick', null)  // Removes 'onclick' property if found
              .off('click');          // Removes other events if found

Es muy fácil de usar removeAttr.

$(element).removeAttr("onclick");

Después de intentar tan duro con bind, desvincular, encendido, apagado, clic, attr, removeAttr, apoyo hice que funcione. Por lo tanto, tengo el siguiente escenario: En mi html no he fijado ningún controlador onclick en línea.

A continuación, en mi Javascript He utilizado el siguiente para agregar una línea onclick:

$(element).attr('onclick','myFunction()');

Para eliminar esta en un punto de Javascript tarde he utilizado la siguiente:

$(element).prop('onclick',null);

Esta es la forma en que trabajó para mí para atar y eventos de clic desvincular dinámicamente en Javascript. Recuerde que no debe insertar cualquier manejador onclick en línea en sus elementos.

¿Qué pasa si evento onclick no está directamente en el elemento, sino de elemento padre? Esto debería funcionar:

$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
    e.preventDefault();
    e.stopPropagation();
    return false;
});

Probar si se desvincula el evento onclick por ID A continuación, utilice:

$('#youLinkID').attr('onclick','').unbind('click');

Probar si se desvincula el evento onclick de Clase A continuación, utilice:

$('.className').attr('onclick','').unbind('click');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top