有没有办法在纯JavaScript中以编程方式触发onmouseover
事件?或者从onmouseover
事件中“提取”方法以直接调用它?
例如
<div id="bottom-div" onmouseover="myFunction('some param specific to bottom-div');">
<div id="top-div" onmouseover="????????"></div>
</div>
top-div在bottom-div之上,所以onmouseover
不会在bottom-div中被激发。我需要一种从top-div调用myFunction('some param specific to bottom-div');
的方法
9条答案
按热度按时间vjhs03f71#
ia2d9nvy2#
这对我来说至少在IE9中有效。应该是跨浏览器兼容或接近它...
对于onmouseover示例,如下所示调用函数
qni6mghb3#
对我来说,以下工作:
还有:
mpgws1up4#
我不需要太多的细节,我有一个带翻转的img,即mouseout/overs,它将img src设置为隐藏的表单值(或者这可以在不同的上下文中使用globl变量来完成)。我使用一些javascript来交换我的over/out图像值,并调用调用的FireEvent(ElementId,“mouseover”);来触发更改。我的JavaScript在页面上隐藏/显示元素。这导致光标有时会在我用来触发事件的img上-这和我换出来的那个一样,有时点击后光标不在img上。
Mouseover/out不会触发,除非你退出并重新输入一个元素,所以在我的事件被触发后,mouseover/out需要“重新触发”来考虑新的光标位置。下面是我的解决方案。在我隐藏/显示各种页面元素后,并按照描述进行img src交换,我调用函数RefreshMouseEvents(ElementId)而不是FireEvent(ElementId,“mouseover”)。
这在IE9中有效(不确定其他浏览器)。
r7knjye25#
经过更多的测试之后,我不得不修改我的RefreshMouseEvents函数集。下面是看似完美的版本(同样只测试了IE9):
js5cn81o6#
我需要做一些类似的事情,但我使用的是jQuery,我发现这是一个更好的解决方案:
使用jQuery的触发器函数。
如果需要的话,你也可以给它添加参数,参见jQuery documentation on .trigger。
cclgggtu7#
dgtucam18#
我正在使用Angular,尝试做一个类似的事情。我从StackOverflow Click here得到了这个答案。基本上,这个想法是添加和删除hover类
ldfqzlk89#
你可以这样做:
但是,正如评论中提到的,在被认为是一个问题之前,值得进行测试。