使用dojo / javascript触发click事件?

时间:2012-04-04 22:24:41

标签: javascript dojo

我一直在使用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的优点是什么?

2 个答案:

答案 0 :(得分:2)

试试这个:

div.dispatchEvent("click");

此处的文档:

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

答案 1 :(得分:0)

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

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

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

// some other code
fnDoWork();

你输了什么,没有给你点击鼠标坐标的事件。大多数时候这不应该是一个大问题。在使用SVG时我只需要这些。