Dojo.Connect事件没有被调用 - 为什么?

时间:2011-03-25 10:44:11

标签: javascript events dom dojo

我正在尝试将onMouseDown事件与dojo.connect的图像相关联:

dojo.connect(dojo.byId("workpic"), "onMouseDown", workpicDown);

function workpicDown()
{
    alert("mousedown");
}

类似的代码几行后,我将onMouse*事件连接到dojo.body的工作完全正常。

但是当我点击图片时,我没有看到警报窗口,因此事件不会被调用。那是为什么?

2 个答案:

答案 0 :(得分:7)

当与DOM事件一起使用时,“onMouseDown”应该全部为小写,而不是Widget事件。尝试:

dojo.connect(dojo.byId("workpic"), "onmousedown", workpicDown);

来自documentation

  

关于事件名称的说明:事件   名字现在是小写,除了在   特殊情况(例如,一些Mozilla DOM   事件)。 Dojo将为您添加“on”   事件名称,如果你把它关掉(例如,   'click'和'onclick'是一样的   dojo的事情)。这不同于   Dijit使用的Widget事件   mixedCase事件名称,以避免   潜在的冲突。

答案 1 :(得分:0)

可能是执行上下文存在问题。尝试使用fallowing:

dojo.connect(dojo.byId("workpic"), "onMouseDown",window, "workpicDown");

window.workpicDown = function()
{
    alert("mousedown");
}