Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menggunakan jQuery untuk Mengesan Fokus Input dan Mencegah Pembuangan Sempadan pada Tetikus Keluar?

Bagaimanakah Saya Boleh Menggunakan jQuery untuk Mengesan Fokus Input dan Mencegah Pembuangan Sempadan pada Tetikus Keluar?

Susan Sarandon
Susan Sarandonasal
2024-11-29 02:50:10453semak imbas

How Can I Use jQuery to Detect Input Focus and Prevent Border Removal on Mouse Out?

Menggunakan jQuery untuk Menentukan Fokus Input dan Mencegah Pembuangan Sempadan

Dalam usaha untuk mencapai keserasian merentas pelayar, penggunaan .hover jQuery () kaedah untuk meniru CSS :hover pada bukan elemen dalam Internet Explorer 6 telah membawa kepada isu yang tidak dijangka. Apabila input dalam salah satu daripada

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 );
};

Ini memastikan bahawa hanya kawalan bentuk dan hiperpautan dianggap fokus.

Sebagai alternatif, anda boleh menggunakan:

if ($("...").is(":focus")) { ... }

atau:

$("input:focus").doStuff();

Semua jQuery Versi

Untuk menentukan elemen mana yang mempunyai fokus, tanpa mengira versi jQuery, gunakan:

$(document.activeElement)

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 );

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn