Dalam pembangunan web, jquery sering digunakan untuk mencapai kesan interaksi halaman. Antaranya, acara klik dua kali dan acara klik tidak dapat dielakkan. Tetapi kadangkala didapati peristiwa klik dua kali mencetuskan dua peristiwa klik Pada masa ini, kita perlu menghalang peristiwa klik daripada berlaku dan hanya membenarkan peristiwa klik dua kali berlaku. Jadi bagaimana ia harus dicapai?
Pertama, kita perlu memahami kaedah pengikatan peristiwa dalam jquery. Terdapat dua kaedah untuk mengikat peristiwa, satu ialah mengikat menggunakan kaedah bind(), dan satu lagi adalah untuk mengikat menggunakan kaedah on(). Kedua-dua kaedah ini pada asasnya adalah sama Kaedah on() ialah versi kaedah bind() yang dinaik taraf, menambah sokongan untuk elemen dinamik. Kami boleh melaksanakan pengikatan peristiwa klik dua kali melalui dua kaedah ini.
Kaedah pelaksanaan khusus adalah seperti berikut:
Gunakan kaedah bind() untuk mengikat acara klik dua kali dan acara klik.
$("#element").bind({ click: function() { //单击事件的处理逻辑 }, dblclick: function() { //双击事件的处理逻辑 } });
Kaedah ini sebenarnya mentakrifkan objek dan mengikat peristiwa klik dan dblclick. Kemudian fungsi logik pemprosesan yang sepadan diberikan masing-masing.
Gunakan kaedah on() untuk mengikat acara klik dua kali dan acara klik.
$("#element").on("click", function() { //单击事件的处理逻辑 }).on("dblclick", function() { //双击事件的处理逻辑 });
Kaedah ini mula-mula mengikat acara klik, dan kemudian mengikat acara dblclick dalam rantai. Ia juga perlu untuk memberikan fungsi logik pemprosesan yang sepadan masing-masing.
Dalam dua kaedah di atas, kita dapat melihat bahawa peristiwa klik dua kali terikat selepas peristiwa klik. Ini kerana jika peristiwa klik dua kali terikat sebelum peristiwa klik, maka apabila pengguna mengklik dua kali, peristiwa klik dua kali akan dicetuskan dahulu, dan kemudian peristiwa klik akan dicetuskan dua kali. Ini tidak akan mencapai kesan melarang peristiwa klik.
Seterusnya, kita perlu melumpuhkan pencetus acara klik dalam fungsi logik pemprosesan acara klik dua kali. Operasi khusus adalah menggunakan fungsi setTimeout() untuk membenarkan acara klik dilaksanakan selepas tempoh masa tertentu. Jika pengguna mengklik sekali lagi dalam tempoh ini, kosongkan fungsi setTimeout() terakhir dan tetapkan semula fungsi setTimeout() baharu. Dengan cara ini, kesan peristiwa klik boleh dipadamkan dan hanya kesan peristiwa klik dua kali akan dikekalkan.
Kod pelaksanaan khusus adalah seperti berikut:
var timer = null; $("#element").bind({ click: function() { var that = this; clearTimeout(timer); timer = setTimeout(function() { //单击事件的处理逻辑 }, 200); }, dblclick: function() { clearTimeout(timer); //双击事件的处理逻辑 } });
Dalam kod di atas, kami mentakrifkan pembolehubah pemasa untuk menyimpan nilai pulangan fungsi setTimeout() supaya ia boleh dikosongkan nanti. Dalam fungsi logik pemprosesan peristiwa klik, mula-mula kosongkan fungsi setTimeout() yang terakhir, dan kemudian tetapkan fungsi setTimeout() baharu untuk menangguhkan pelaksanaan acara klik sebanyak 200 milisaat. Dalam fungsi logik pemprosesan acara klik dua kali, kosongkan fungsi setTimeout() terakhir, dan kemudian laksanakan acara klik dua kali. Dengan cara ini acara klik dilumpuhkan.
Perlu diingatkan bahawa selang masa bagi fungsi setTimeout() perlu dilaraskan mengikut situasi sebenar Sebaik-baiknya untuk menetapkannya selepas ujian.
Untuk meringkaskan, kami boleh menggunakan kaedah berikut untuk melumpuhkan acara klik:
Di atas ialah cara melaksanakan acara klik dua kali untuk mengelakkan berlakunya acara klik melalui jquery saya harap ia akan membantu anda.
Atas ialah kandungan terperinci Bagaimana untuk membuat hanya acara klik dua kali berlaku dalam jquery. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!