javascript - secundaria - ¿Desenlazar el enlace en línea?
prueba enlace 2018 (2)
El desvinculación de jQuery no funciona en los atributos de un onclick
: solo funciona para las funciones que se agregaron mediante el bind
y, por lo tanto, están disponibles en $(...).data(''events'')
. Tienes que usar removeAttr
para eliminar onclick
.
Lea esta pregunta para más información.
Bien, me pregunto cómo desenlazar un evento onclick en línea en jQuery. Uno pensaría que .unbind()
funcionaría, pero no es así.
Para probar esto por ti mismo, juega con el siguiente HTML y JavaScript:
function UnbindTest() {
$("#unbindTest").unbind(''click'');
}
function BindTest() {
$("#unbindTest").bind(''click'', function() { alert("bound!"); });
}
<button type="button" onclick="javascript:UnbindTest();">Unbind Test</button>
<button type="button" onclick="javascript:BindTest();">Bind Test</button>
<button type="button" onclick="javascript:alert(''unbind me!'');" id="unbindTest">Unbind Button</button>
Como puede ver, el desvinculación no desvincula el evento onclick
línea ... sin embargo, desvincula el evento click que se agrega con bind()
.
Por lo tanto, me pregunto si hay una manera de desenlazar los eventos de onclick en línea antes de hacer lo siguiente:
$("#unbindTest").get(0).onclick = "";
Gracias
unbind
controladores de eventos registrados con bind
, no los asignados a través de onclick
u otros atributos DOM0. De la documentación:
Cualquier controlador que se haya adjuntado con
.bind()
se puede eliminar con.unbind()
.
Editar : Desvincula los controladores DOM0 borrando el atributo relevante en el elemento. Tuve que buscar la forma jQuery de hacerlo: removeAttr
.