Je suppose que j'essaie d'être trop intelligent pour mon propre bien avec celui-ci! Je travaille sur une fonction plugin jQuery qui va activer/désactiver une classe sur un élément lorsque vous passez la souris sur/in, mais ne supprime pas la classe si vous cliquez à l'intérieur de l'élément avant de planer et doesn ' . t bascule si l'élément a déjà cette classe avant planant dansjquery: Bascule la classe au survol de la souris sur mouseover/mouseout de l'élément, mais conserve la classe si on clique dans l'élément?
j'ai essayé de venir avec les éléments suivants:
$.fn.showHover = function(settings) {
this.bind('mouseover', function hoverIn(){
if ($(this).hasClass('active') == false) {
$(this).addClass('active');
$(this).bind('click', function getFocus(){
$(this).unbind('mouseout', hoverOut);
})
$(this).bind('mouseout', function hoverOut(){
$(this).removeClass("active");
$(this).unbind('click', getFocus);
})
}
})
return this;
};
... l'idée si vous passez la souris sur avant de cliquer, supprimer la classe et cliquez unbind - Si vous cliquez avant de planer, décompressez mouseout et la classe ne sera jamais supprimée.
Évidemment (puisque je demande de l'aide ici!) Cela ne fonctionne pas - la classe est supprimée si je clique à l'intérieur de l'élément avant de planer ou non.
Quelqu'un peut-il indiquer pourquoi il est défaillant, et peut-être suggérer un meilleur moyen de contourner le problème? Merci!
Simple est le meilleur! Je me suis dérouté par l'idée d'avoir une seule classe de style pour garder le même style pour le vol stationnaire et en cliquant, mais définissant deux sélecteurs et un style comme suit: .active_hover, .active_click {...} donne la résultat désiré. Merci! – KyokoHunter