答案 0 :(得分:3)
您可以使用dispatch发送/触发元素的事件:element.dispatchEvent(event);
。不同浏览器和版本上的support may vary; my demo on 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.
}
}
您可以在
了解更多信息question simulate a mouse click from 2011或Trigger events in javascript from 2010可能与旧浏览器中的支持有关。
答案 1 :(得分:2)
是的,因为您已在图像中选择了它,所以只能使用dispatchEvent
方法,前提是您必须事先在chrome控制台中创建事件并执行。
var event = new MouseEvent("mouseover");
$0
是您在浏览器的调试器中选择的元素(在您的情况下是具有facebox类的div)$0.dispatchEvent(event)