2

我一直在使用 javascript 并做了类似的事情

​var div = document.getElementById("bob");
div.addEventListener("click", function(){alert('foo');});​​​​​​​​​​​

// all tests fail    
//div.click();
//div.onclick();
//div.onClick();

var div2 = document.getElementById("adam");
// works
//div2.onclick();

var div3 = document.getElementById("iris");
div3.onclick = function(){alert('wat');};
// works
//div3.onclick();

//How do I trigger the div (the first div, "bob") "click" event?

代码在这里:http: //jsfiddle.net/TVrfF/,取消注释测试用例

那么如何使用dojo或纯javascript通过addEventListener(例如div“bob”)触发点击事件设置?

另外,由于我遇到的这个问题,我应该从现在开始放弃使用 addEventListener 并只使用 element.onclick = function(){} 吗?addEventListener 的优点是什么?

4

2 回答 2

2

尝试这个:

div.dispatchEvent("click");

此处的文档:

https://developer.mozilla.org/en/DOM/element.dispatchEvent

于 2012-04-04T22:35:00.033 回答
0

您是否有理由需要通过模拟点击而不是直接调用函数来调用函数?

var fnDoWork = function() {
    alert('do work');
}

var div = document.getElementById("bob");
dojo.connect(div, "onclick", fnDoWork);​​​​​​​​​​​

// some other code
fnDoWork();

您确实失去的是没有为您提供单击鼠标坐标的事件。大多数时候,这应该没什么大不了的。我只在使用 SVG 时才需要这些。

于 2012-04-05T10:58:30.450 回答