Karena saya tidak dapat berkomentar, maka saya akan menulis ini sebagai jawaban!
Harap mengerti perbedaan antara pemilih css ": hover" dan acara hover!
": hover" adalah pemilih css dan benar-benar dihapus dengan acara ketika digunakan seperti ini $("#elementId").is(":hover")
, tetapi artinya itu tidak ada hubungannya dengan acara jQuery.
jika Anda kode $("#elementId:hover")
, elemen hanya akan dipilih ketika Anda membawa mouse. pernyataan di atas akan bekerja dengan semua versi jQuery saat Anda memilih elemen ini dengan pilihan css murni dan sah.
Di sisi lain acara melayang yang
$("#elementId").hover(
function() {
doSomething();
}
);
memang dicabut sebagai jQuery 1.8 di sini status dari situs web jQuery:
Ketika nama acara "hover" digunakan, subsistem acara mengubahnya menjadi "mouseenter mouseleave" di string acara. Ini menjengkelkan karena beberapa alasan:
Semantik: Melayang tidak sama dengan mouse yang masuk dan meninggalkan elemen, itu menunjukkan sejumlah perlambatan atau penundaan sebelum menembak. Nama acara: Jenis acara yang dikembalikan oleh pawang yang dilampirkan tidak melayang, tetapi mouseenter atau mouseous. Tidak ada acara lain yang melakukan ini. Memilih "hover" nama: Tidak mungkin untuk melampirkan peristiwa dengan nama "hover" dan memecatnya menggunakan .trigger ("hover"). Dokumen sudah memanggil nama ini "sangat tidak disarankan untuk kode baru", saya ingin mencabutnya secara resmi untuk 1,8 dan akhirnya menghapusnya.
Mengapa mereka menghapus penggunaannya adalah (": hover") tidak jelas tetapi oh well, Anda masih dapat menggunakannya seperti di atas dan di sini ada sedikit retasan untuk tetap menggunakannya.
(function ($) {
/**
* :hover selector was removed from jQuery 1.8+ and cannot be used with .is(":hover")
* but using it in this way it works as :hover is css selector!
*
**/
$.fn.isMouseOver = function() {
return $(this).parent().find($(this).selector + ":hover").length > 0;
};
})(jQuery);
Oh dan saya tidak akan merekomendasikan versi timeout karena ini membawa banyak kompleksitas , gunakan fungsi timeout untuk hal-hal semacam ini jika tidak ada cara lain dan percayalah, pada 95% dari semua kasus ada cara lain !
Semoga saya bisa membantu beberapa orang di luar sana.
Greetz Andy