Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trigger css hover with JS [duplicate]

I would know if it is possible somehow to trigger the CSS HOVER effect with JS, without having to use a additional class...

Here is an example of what i want to do: http://jsfiddle.net/pXbMZ/2/

i have tried fireing the effect using mouseenter() but this does not trigger the CSS hover effect.

PS: I have made a function that helps a user using a online CMS. The help function shows you how to do stuff by moving a image around that shows you how to use stuff. The virtual cursor can click stuff, show elements etc.. But i would like this virtual cursor to tigger the :hover effects set in the CSS as well.

like image 494
meo Avatar asked Dec 03 '10 15:12

meo


2 Answers

I know what you're trying to do, but why not simply do this:

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

The class is already defined in your CSS...

As for you original question, this has been asked before and it is not possible unfortunately. e.g. http://forum.jquery.com/topic/jquery-triggering-css-pseudo-selectors-like-hover

However, your desired functionality may be possible if your Stylesheet is defined in Javascript. see: http://www.4pmp.com/2009/11/dynamic-css-pseudo-class-styles-with-jquery/

Hope this helps!

like image 99
Nick G Avatar answered Oct 05 '22 11:10

Nick G


You can't. It's not a trusted event.

Events that are generated by the user agent, either as a result of user interaction, or as a direct result of changes to the DOM, are trusted by the user agent with privileges that are not afforded to events generated by script through the DocumentEvent.createEvent("Event") method, modified using the Event.initEvent() method, or dispatched via the EventTarget.dispatchEvent() method. The isTrusted attribute of trusted events has a value of true, while untrusted events have a isTrusted attribute value of false.

Most untrusted events should not trigger default actions, with the exception of click or DOMActivate events.

You have to add a class and add/remove that on the mouseover/mouseout events manually.


Side note, I'm answering this here after I marked this as a duplicate since no answer here really covers the issue from what I see. Hopefully, one day it'll be merged.

like image 30
Benjamin Gruenbaum Avatar answered Oct 05 '22 12:10

Benjamin Gruenbaum