Lihat contoh ini: TIDAK ADA UNBIND YANG DIGUNAKAN
KODE
$("#page2").on("pagebeforeshow", function(){
$("#testBtn").on("click", function(){
alert("Hi!");
});
});
Jika Anda berpindah dari halaman 1 ke halaman 2, lalu mengklik tombol bernama Click me
Anda akan melihat peringatan "Hai!" ditampilkan dengan benar. Acaranya diikat pada pagebeforeshow
, sampai sekarang semuanya baik-baik saja.
Sekarang kembali ke halaman1, lalu muat lagi halaman2, klik lagi tombol Click me
.. Anda akan melihat bahwa peringatan ditampilkan 2 kali! dan ini SALAH. Itu sebabnya Anda perlu unbind
acara tersebut SEBELUM Anda mengikatnya lagi.
Pada dasarnya, setiap kali Anda memuat halaman2, Anda mengikat peristiwa baru ke tombol.. jadi, jika Anda memuat 10 kali halaman tersebut, Anda akan memiliki 10 peristiwa yang diikat ke tombol, yang akan diaktifkan setelah tombol diklik.
Inilah biola yang berfungsi dengan unbind
(untuk melepaskan ikatan acara, saya menggunakan off()
): UNBIND USED
KODE
$("#page2").on("pagebeforeshow", function(){
$("#testBtn").off("click").on("click", function(){
alert("Hi!");
});
});
lihat di sini untuk memahami mengapa saya menggunakan off()
dan bukan unbind()
, dan juga di sini jika Anda ingin melihat cara kerja off()
Saya harap ini membantu memperjelas keraguan Anda..
person
BeNdErR
schedule
20.10.2013