80 votes

Déclencher un survol en css avec JS

Je voudrais savoir s'il est possible d'une manière ou d'une autre de déclencher l'effet CSS HOVER avec JS, sans avoir à utiliser une classe supplémentaire...

Voici un exemple de ce que je veux faire : http://jsfiddle.net/pXbMZ/2/

J'ai essayé de déclencher l'effet en utilisant mouseenter() mais cela ne déclenche pas l'effet de survol CSS.

PS : J'ai créé une fonction qui aide un utilisateur à utiliser un CMS en ligne. La fonction d'aide vous montre comment faire des choses en déplaçant une image autour qui vous montre comment utiliser les choses. Le curseur virtuel peut cliquer sur des trucs, montrer des éléments, etc. Mais je voudrais que ce curseur virtuel déclenche également les effets :hover définis dans le CSS.

54voto

Nick G Points 504

Je sais ce que vous essayez de faire, mais pourquoi ne pas simplement faire ça :

$('div').addClass('hover');

La classe est déjà définie dans votre CSS...

Quant à votre question initiale, elle a déjà été posée et n'est malheureusement pas possible. Par exemple http://forum.jquery.com/topic/jquery-triggering-css-pseudo-selectors-like-hover

Cependant, la fonctionnalité que vous souhaitez peut être possible si votre feuille de style est définie en Javascript. voir : http://www.4pmp.com/2009/11/dynamic-css-pseudo-class-styles-with-jquery/

J'espère que cela vous aidera !

45voto

Benjamin Gruenbaum Points 51406

Tu ne peux pas. Ce n'est pas un événement de confiance .

Les événements qui sont générés par l'agent utilisateur, soit à la suite d'une interaction avec l'utilisateur, soit à la suite directe de modifications apportées au DOM, sont considérés comme fiables par l'agent utilisateur avec des privilèges qui ne sont pas accordés aux événements générés par script par la méthode DocumentEvent.createEvent("Event"), modifiés à l'aide de la méthode Event.initEvent(), ou distribués par la méthode EventTarget.dispatchEvent(). L'attribut isTrusted des événements fiables a une valeur de true, tandis que les événements non fiables ont une valeur d'attribut isTrusted de false.

Le plus les événements non fiables ne doivent pas déclencher d'actions par défaut à l'exception des événements click ou DOMActivate.

Vous devez ajouter une classe et l'ajouter/supprimer manuellement sur les événements mouseover/mouseout.


Note complémentaire, je réponds ici après avoir marqué este en tant que doublon car aucune réponse ici ne couvre vraiment le problème d'après ce que je vois. Espérons qu'un jour, il sera fusionné.

8voto

brendan Points 15097

Je ne pense pas que ce que vous demandez soit possible.

Voir : Élément de survol avec JQuery

En fait, l'ajout d'une classe est le seul moyen d'y parvenir à ma connaissance.

-3voto

DrewBowman Points 72

Si vous liez des événements aux événements onmouseover et onmouseout de Jquery, vous pouvez ensuite déclencher cet effet en utilisant mouseenter().

Qu'essayez-vous d'accomplir ?

-4voto

Egor4eg Points 1786

1). Vous pouvez utiliser les événements "onmouseover" et "onmouseout".

2). Vous pouvez utiliser la méthode jQuery.hover()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X