Rumah >hujung hadapan web >tutorial js >Bagaimana untuk membatalkan acara hover dalam jquery
Cara membatalkan acara tuding dalam jquery: 1. Ikat acara klik dan tuding pada teg a; 2. Gunakan "$('a').unbind('mouseenter').unbind('mouseleave; ') ;" kaedah boleh membatalkan acara tuding terikat.
Persekitaran pengendalian artikel ini: sistem windows7, versi jquery 3.2.1, komputer DELL G3
Cara membatalkan acara hover dalam jquery?
Cara yang betul untuk membatalkan dan mengikat acara hover dalam jquery
Dalam reka bentuk web, kami sering menggunakan jquery untuk bertindak balas terhadap hover tetikus peristiwa, alih tetikus dan keluar tetikus Peristiwa mempunyai kesan yang sama, tetapi bagaimana untuk menggunakan bind untuk mengikat kaedah hover? Bagaimana untuk menggunakan unbind untuk menyahikat acara?
1. Cara mengikat acara tuding
Mula-mula lihat kod berikut Katakan kita mengikat acara klik dan tuding pada teg a:
$(document).ready(function(){ $('a').bind({ hover: function(e) { // Hover event handler alert("hover"); }, click: function(e) { // Click event handler alert("click"); } }); });
Apabila teg diklik, sesuatu yang aneh berlaku Peristiwa tuding terikat tidak bertindak balas sama sekali, tetapi acara klik terikat bertindak balas secara normal.
Tetapi jika anda menukar kaedah penulisan, contohnya:
$("a").hover(function(){ alert('mouseover'); }, function(){ alert('mouseout'); })
Kod ini boleh berjalan seperti biasa. Tidak boleh terikat untuk berlegar?
Sebenarnya, tidak, kedua-dua acara mouseenter dan mouseleave harus digunakan sebaliknya (ini juga merupakan acara yang digunakan dalam fungsi .hover())
Jadi ia boleh dipetik terus seperti ini :
$(document).ready(function(){ $('a').bind({ mouseenter: function(e) { // Hover event handler alert("mouseover"); }, mouseleave: function(e) { // Hover event handler alert("mouseout"); }, click: function(e) { // Click event handler alert("click"); } }); });
Oleh kerana .hover() ialah peristiwa yang ditakrifkan oleh jQuery sendiri Ia hanya untuk kemudahan pengguna untuk mengikat dan memanggil acara mouseenter dan mouseleave, jadi sudah tentu ia tidak boleh digunakan sebagai peristiwa dalam parameter acara .bind() untuk dipanggil.
2. Cara membatalkan acara tuding
Seperti yang kita sedia maklum, anda boleh menggunakan fungsi unbind untuk membatalkan acara terikat, tetapi anda hanya boleh membatalkan acara terikat melalui bind. Acara hover dalam jquery agak istimewa Jika acara terikat dengan cara ini, ia tidak boleh dibatalkan.
$("a").hover(function(){ alert('mouseover'); }, function(){ alert('mouseout'); })
Cara yang betul untuk membatalkan acara tuding terikat:
$('a').unbind('mouseenter').unbind('mouseleave');
3 Ringkasan
Malah, anda boleh merujuk soalan ini Beberapa orang telah membaca dokumentasi rasmi jquery Kebanyakan tutorial di Internet hanya menerangkan cara menggunakan kaedah ini dan hanya mencapai matlamat Tiada pemahaman yang mendalam tentang mengapa ia ditulis dengan cara ini?
Pembelajaran yang disyorkan: "tutorial video jquery"
Atas ialah kandungan terperinci Bagaimana untuk membatalkan acara hover dalam jquery. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!