我如何模拟点击或keydown事件?

时间:2011-01-18 14:15:07

标签: javascript events keydown

我需要模拟点击或鼠标事件。我尝试了各种各样的东西,但我使用的lib似乎没有响应它或只是在特定的浏览器上做出响应。 ATM我做$('#target')。val($('#target2')。val());适用于firefox和opera。在chrome,IE8和safari上失败。

我可以向libs添加事件,但我不知道要添加哪个事件(或者如何正确地执行它)。无论如何我如何解决这个问题?基本上我用.val()设置textarea文本,lib似乎没有拿起那个事件。

3 个答案:

答案 0 :(得分:3)

您可以使用DOM Level 2事件模型,例如:

function simulateClick(element) {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  cb.dispatchEvent(element);
}

演示:http://www.jsfiddle.net/4yUqL/66/

这将真正模拟对元素的鼠标点击。无论事件是如何约束的。

答案 1 :(得分:2)

jQuery中的

.trigger('click')可能会实现你想要做的事情。它将触发附加到click事件的所有处理程序。

答案 2 :(得分:1)

如果有人碰到这个寻找框架不可知方式来解雇任何HTML和鼠标事件,请查看此处:How to simulate a mouse click using JavaScript?