Yorum yapamadığım için bunu bir cevap olarak yazacağım!
Lütfen css selector ": hover" ile hover olayı arasındaki farkı anlayın!
": hover" bir css seçicisidir ve bu şekilde kullanıldığında gerçekten olayla birlikte kaldırılmıştır $("#elementId").is(":hover")
, ancak bu , jQuery olay fareyle gerçekten ilgisi yoktur.
kod yazarsanız $("#elementId:hover")
, öğe yalnızca fareyle üzerine geldiğinizde seçilir. Yukarıdaki ifade, saf ve yasal css seçimi ile bu öğeyi seçtiğiniz gibi tüm jQuery sürümleriyle çalışacaktır.
Öte yandan olay vurgulu
$("#elementId").hover(
function() {
doSomething();
}
);
gerçekten de jQuery 1.8 olarak jQuery web sitesinden devlet:
Olay adı "üzerine gelindiğinde" kullanıldığında, olay alt sistemi, olay dizesindeki "mouseenter faresi" haline dönüştürür. Bu çeşitli nedenlerle can sıkıcıdır:
Anlambilim: Fareyle üzerine gelme, bir öğeye giren ve çıkan fareyle aynı değildir, ateş etmeden önce bir miktar yavaşlama veya gecikme anlamına gelir. Olay adı: Ekli işleyici tarafından döndürülen event.type, fareyle üzerine gelmez, ancak mouseenter veya fareyle bırakılır. Başka hiçbir olay bunu yapmaz. "Fareyle üzerine gelme" adının birlikte seçilmesi: "Fareyle üzerine gelme" adıyla bir olay eklemek ve .trigger ("hover") kullanarak tetiklemek mümkün değildir. Dokümanlar zaten bu adı "yeni kod için şiddetle tavsiye edilmedi" olarak adlandırıyor, resmi olarak 1.8 için kullanımdan kaldırmak ve sonunda kaldırmak istiyorum.
Kullanım neden kaldırıldı (": vurgulu") belirsiz ama oh iyi, yine de yukarıdaki gibi kullanabilirsiniz ve burada hala kullanmak için küçük bir kesmek.
(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 ve ben zaman aşımı sürümünü tavsiye etmem , çünkü bu çok karmaşıklık getirir , başka bir yol yoksa bu tür şeyler için zaman aşımı işlevlerini kullanın ve bana inan , tüm vakaların% 95'inde başka bir yol var !
Umarım orada birkaç kişiye yardım edebilirim.
Greetz Andy