Jawaban:
Cara Lama (sebelum 1.7):
$("...").attr("onclick", "").unbind("click");
Cara Baru (1.7+):
$("...").prop("onclick", null).off("click");
(Ganti ... dengan selektor yang Anda butuhkan.)
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()
IE11 juga.
Saya tahu ini sudah cukup lama, tetapi ketika orang asing yang tersesat menemukan pertanyaan ini mencari jawaban (seperti yang saya lakukan) maka ini adalah cara terbaik untuk melakukannya, daripada menggunakan removeAttr ():
$element.prop("onclick", null);
Mengutip doku resmi jQuerys :
"Menghapus penangan kejadian onclick sebaris menggunakan .removeAttr () tidak mencapai efek yang diinginkan di Internet Explorer 6, 7, atau 8. Untuk menghindari potensi masalah, gunakan .prop () sebagai gantinya"
<span onlick="method()">sometext>/span>
Acara ini sepenuhnya tidak terikat dan berfungsi dengan baik
onclick
propertiMisalkan Anda menambahkan peristiwa klik Anda sebaris, seperti ini:
<button id="myButton" onclick="alert('test')">Married</button>
Kemudian, Anda dapat menghapus acara seperti ini:
$("#myButton").prop('onclick', null); // Removes 'onclick' property if found
click
pendengar acaraMisalkan Anda menambahkan peristiwa klik dengan mendefinisikan pendengar peristiwa, seperti ini:
$("button").on("click", function() { alert("clicked!"); });
... atau seperti ini:
$("button").click(function() { alert("clicked!"); });
Kemudian, Anda dapat menghapus acara seperti ini:
$("#myButton").off('click'); // Removes other events if found
Jika Anda tidak yakin bagaimana acara Anda ditambahkan, Anda dapat menggabungkan keduanya, seperti ini:
$("#myButton").prop('onclick', null) // Removes 'onclick' property if found
.off('click'); // Removes other events if found
jika Anda menggunakan jquery 1.7
$('html').off('click');
lain
$('html').unbind('click');
Sangat mudah menggunakan removeAttr.
$(element).removeAttr("onclick");
Setelah berusaha keras dengan bind, unbind, on, off, click, attr, removeAttr, prop, saya berhasil. Jadi, saya memiliki skenario berikut: Dalam html saya, saya TIDAK memasang penangan onclick inline.
Kemudian di Javascript saya, saya menggunakan yang berikut ini untuk menambahkan handler onclick sebaris:
$(element).attr('onclick','myFunction()');
Untuk menghapus ini di kemudian hari dari Javascript saya menggunakan yang berikut ini:
$(element).prop('onclick',null);
Ini adalah cara saya bekerja untuk mengikat dan melepaskan peristiwa klik secara dinamis di Javascript. Ingatlah untuk TIDAK memasukkan handler onclick sebaris apa pun ke dalam elemen Anda.
.on('click', myFunction)
(catatan bahwa myFunction
ini bukan dalam tanda kutip) lalu, kemudian,.off('click')
Bagaimana jika event onclick tidak langsung pada elemen, tetapi dari elemen induk? Ini harus bekerja:
$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
e.preventDefault();
e.stopPropagation();
return false;
});
Coba ini jika Anda melepaskan acara onclick dengan ID Kemudian gunakan:
$('#youLinkID').attr('onclick','').unbind('click');
Coba ini jika Anda melepaskan acara onclick menurut Kelas Kemudian gunakan:
$('.className').attr('onclick','').unbind('click');