When you hover over one <div>
, I want an <a>
on a separate part of the page to be "hovered" on also.
<div class="initiator"> </div> <div> <a class="receiver href="#">Touch the div and I get hovered!</a> </div>
I've tried this jQuery, but it doesn't trigger the <a>
's hover CSS.
$(".initiator").hover(function(){ $(".receiver").hover(); console.log("div was hovered"); });
jQuery mouseover() MethodThe mouseover() method triggers the mouseover event, or attaches a function to run when a mouseover event occurs. Note: Unlike the mouseenter event, the mouseover event triggers if a mouse pointer enters any child elements as well as the selected element.
The mouseout() method triggers the mouseout event, or attaches a function to run when a mouseout event occurs. Note: Unlike the mouseleave event, the mouseout event is triggered if a mouse pointer leaves any child elements as well as the selected element.
hover() is deprecated #66.
You can apply :hover styles to any renderable element on a page. IE6 only supports that pseudo-class on links though.
Try this:
$('.initiator').on('mouseenter mouseleave', function(e) { $('.receiver').trigger(e.type); })
It will apply the same triggers for the receiver as the initiator receives for both mouseenter and mouseleave. Note that:
.hover(over, out)
is just a high-level variant of:
.on('mouseenter', over).on('mouseleave', out)
so using that information you can be more precise when binding and triggering mouse events.
As noted in the comment, you can also use:
$('.initiator').hover(function(e) { $('.receiver').trigger(e.type); })
There are lots more to read here: http://api.jquery.com/hover/
You could do something like-:
$(".initiator").hover(function(){ $(".receiver").addClass('hover'); console.log("div was hovered"); }, function(){ $(".receiver").removeClass('hover'); });
And now you can have a class that holds the css rules.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With