【发布时间】:2011-07-06 19:10:18
【问题描述】:
使用按钮,我可以在它们上调用click() 方法来生成点击。然而,DIV 并非在所有浏览器上都有此方法。但是我可以将点击事件监听器附加到它们(通过设置.onclick="..." 或添加事件监听器)。
有什么方法可以让我以编程方式“合成”对此类元素的点击,但不使用 jQuery?理想情况下,这将不依赖于注册侦听器的特定方式(因此简单地调用 eval(div.onclick) 对我不起作用),并且适用于所有现代浏览器。
(出于好奇,我需要这个来进行自动化测试,而不是欺骗用户。)
【问题讨论】:
-
如果单击不起作用,则可以使用 onmousedown/onmouseup 作为解决方法。如果没有其中任何一个,标准的拖放库将无法工作。
-
所以 - 让我直截了当 - 你想要跨浏览器 javascript - 并且不想使用 jQuery?你要么为失败做好准备,要么付出很多努力。
-
为什么 eval(div.onclick) 不适合你?
-
@wiifm 不,他不是,这也不难。人们过于依赖 jQuery。如果你做了一些研究,你会发现一个跨浏览器的实现只需要不超过九行。
-
@wiifm 可能有一百万个不使用它的正当理由。毕竟,我的问题不是“如果我想……我应该使用 jQuery”。
标签: javascript dom browser dom-events