您可以使用dispatch来发送/触发某个元素的事件element.dispatchEvent(event);
。在不同的浏览器和版本上,支持可能会有所不同;我在jsfiddle上的演示适用于Chrome 65。
鉴于此html
<div id="menu">
<h3>Menu</h3>
<div>Sample to fire onmouseover using a script</div>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
<button onclick="simulateMouseOver()">simulate onMouseOver</button>
在下面设置了onmouseover-event <div id=menu>
。一旦将鼠标移到div上方,事件就会触发:
var menu = document.getElementById("menu");
menu.addEventListener("mouseover", function(event){
event.target.style.backgroundColor = "blue";
setTimeout(function() {
event.target.style.backgroundColor = "";
}, 500);
}, false)();
要从脚本内部引发onmouseover-event
看到这个代码
function simulateMouseOver() {
var listItems = document.querySelectorAll("ul li")
var item1 = listItems.item(1);
var event = new MouseEvent('mouseover',
{view: window, bubbles: true, cancelable: true});
var cancelled = !item1.dispatchEvent(event);
if (cancelled) {
// a handler called preventDefault.
} else {
// none of the handlers called preventDefault.
}
}
您可以在以下找到更多信息
该问题模拟了2011年的鼠标单击或2010年以来的javascript中的Trigger事件,这可能与旧版浏览器的支持有关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句