Cara Menggunakan jQuery untuk Menentukan sama ada Input Difokuskan
Dalam halaman hadapan tapak web, berbilang
Persediaan ini berfungsi dengan sempurna, kecuali dalam IE6, yang tidak menyokong :legar pada elemen selain tag. Untuk menangani isu ini, jQuery digunakan untuk meniru CSS :hover menggunakan kaedah $(#element).hover().
Walau bagaimanapun, masalah timbul apabila jQuery mengendalikan kedua-dua focus() dan hover() borang. . Apabila elemen input mendapat fokus dan pengguna menggerakkan tetikus masuk dan keluar, sempadan hilang.
Untuk menyelesaikan tingkah laku ini, pertimbangkan untuk menggunakan pernyataan bersyarat. Sebagai contoh, dengan menyemak sama ada sebarang input memfokuskan pada acara keluar tetikus, adalah mungkin untuk mengelakkan sempadan daripada pudar. Memandangkan jQuery tidak mempunyai pemilih :focus, pendekatan alternatif perlu diterokai.
jQuery 1.6
jQuery 1.6 memperkenalkan pemilih :focus, menghapuskan keperluan untuk pelaksanaan tersuai. Hanya gunakan:
$("..").is(":focus")
jQuery 1.5 dan Di Bawah
Kaedah yang lebih baharu telah muncul untuk fokus ujian, termasuk pelaksanaan Ben Alman:
jQuery.expr[':'].focus = function( elem ) { return elem === document.activeElement && ( elem.type || elem.href ); };
Ini mentakrifkan pemilih tersuai, membenarkan penggunaan seperti:
if ($("...").is(":focus")) { ... }
Mana-mana Versi jQuery
Untuk mendapatkan semula elemen yang sedang difokuskan:
$(document.activeElement)
Untuk memastikan keserasian dengan kedua-dua versi jQuery 1.6 dan lebih rendah:
(function ( $ ) { var filters = $.expr[":"]; if ( !filters.focus ) { filters.focus = function( elem ) { return elem === document.activeElement && ( elem.type || elem.href ); }; } })( jQuery );
Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada Elemen Input Difokuskan dalam jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!