s ini mendapat fokus, sempadan yang dicipta oleh kaedah .hover() hilang apabila tetikus keluar.
Untuk menyelesaikannya, kami berusaha untuk memastikan sama ada sebarang input memfokuskan tetikus keluar. Memandangkan jQuery tidak mempunyai pemilih :focus, kaedah alternatif diperlukan.
jQuery 1.6 dan Di Atas
jQuery 1.6 termasuk pemilih :focus, menghapuskan keperluan untuk pelaksanaan tersuai. Hanya gunakan $("..").is(":focus") untuk menyemak input terfokus.
jQuery 1.5 dan Di Bawah
Untuk versi jQuery yang lebih awal, adalah disyorkan untuk menentukan pemilih :fokus tersuai. Ini boleh dicapai dengan:
jQuery.expr[':'].focus = function( elem ) {
return elem === document.activeElement && ( elem.type || elem.href );
};
Salin selepas log masuk
Ini memastikan bahawa hanya kawalan bentuk dan hiperpautan dianggap fokus.
Sebagai alternatif, anda boleh menggunakan:
if ($("...").is(":focus")) { ... }
Salin selepas log masuk
atau:
$("input:focus").doStuff();
Salin selepas log masuk
Semua jQuery Versi
Untuk menentukan elemen mana yang mempunyai fokus, tanpa mengira versi jQuery, gunakan:
$(document.activeElement)
Salin selepas log masuk
Menyemak Pemilih :fokus Hilang
Jika anda tidak pasti versi jQuery, anda boleh menambah pemilih :focus secara manual:
(function ( $ ) {
var filters = $.expr[":"];
if ( !filters.focus ) {
filters.focus = function( elem ) {
return elem === document.activeElement && ( elem.type || elem.href );
};
}
})( jQuery );
Salin selepas log masuk
Dengan menggunakan teknik ini, anda boleh mengekalkan gelagat sempadan yang diingini sambil menyesuaikan diri dengan pengehadan khusus penyemak imbas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan jQuery untuk Mengesan Fokus Input dan Mencegah Pembuangan Sempadan pada Tetikus Keluar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!