You can use dispatch to send / fire an event for an element: element.dispatchEvent(event);
. The support may vary on different browsers and versions; my demo on jsfiddle worked on chrome 65.
This is the demo
function simulateMouseOver() {
var item2 = document.querySelectorAll("ul li")[1];
var event = new MouseEvent('mouseover',
{view: window, bubbles: true, cancelable: true});
var cancelled = !item2.dispatchEvent(event);
if (cancelled) {
// a handler called preventDefault.
} else {
// none of the handlers called preventDefault.
}
}
var menu = document.getElementById("menu");
menu.addEventListener("mouseover", function(event){
event.target.style.backgroundColor = "lime";
setTimeout(function() {
event.target.style.backgroundColor = "";
}, 800);
}, false);
ul {background-color: lightgray}
<h3>Sample to fire onmouseover using a script</h3>
<ul id="menu">
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
<button onclick="simulateMouseOver()">simulate onMouseOver item two</button>
The html
<h3>Sample to fire onmouseover using a script</h3>
<ul id="menu">
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
<button onclick="simulateMouseOver()">simulate onMouseOver</button>
Below an onmouseover-event is set for <ul id=menu>
. As soon as the mouse is moved over ul or any node inside ul:
var menu = document.getElementById("menu");
menu.addEventListener("mouseover", function(event){
event.target.style.backgroundColor = "blue";
setTimeout(function() {
event.target.style.backgroundColor = "";
}, 500);
}, false)();
To raise the onmouseover-event from inside a script you
- first have to create the correct event
- an then fire / dispatch this event to the target-element
See this code
function simulateMouseOver() {
var item2 = document.querySelectorAll("ul li")[1];
var event = new MouseEvent('mouseover',
{view: window, bubbles: true, cancelable: true});
var cancelled = !item2.dispatchEvent(event);
if (cancelled) {
// a handler called preventDefault.
} else {
// none of the handlers called preventDefault.
}
}
You can find out more at
The question simulate a mouse click from 2011 or Trigger events in javascript from 2010 may be of use regarding the support in older browsers.