【发布时间】:2016-09-10 21:38:53
【问题描述】:
【问题讨论】:
标签: javascript firefox onmouseover firefox-developer-tools
【问题讨论】:
标签: javascript firefox onmouseover firefox-developer-tools
是的,因为它在您的图像中被选中,您可以使用 dispatchEvent 方法,但您必须事先在 chrome 控制台中创建事件并执行它。
var event = new MouseEvent("mouseover");
$0 是您在浏览器的调试器中选择的元素(在您的情况下是带有类 facebox 的 div)$0.dispatchEvent(event)
【讨论】:
您可以使用 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>
在鼠标悬停事件下方设置了<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 对于旧浏览器的支持可能有用。
【讨论】:
$('TARGET_SELECTOR').dispatchEvent(new MouseEvent('mouseover', {view: window, bubbles: true, cancelable: true}));。