2011-03-25 5 views
4

Я пытаюсь подключить onMouseDown событие к изображению с dojo.connect как:Dojo.Connect Событие не вызвано - почему?

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

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

Похожие код несколько строк позже, когда я подключения onMouse* события dojo.body работает полностью правильно.

но когда я нажимаю на изображение, я не вижу окно предупреждения, поэтому событие не вызывается. Почему это?

ответ

7

«OnMouseDown» должно быть в нижнем регистре при использовании событий DOM, в отличие от Widget события. Попробуйте:

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

От documentation:

A note about the event names: Event names now are lower case, except in special cases (e.g., some Mozilla DOM events). Dojo will add "on" to your event name if you leave it off (e.g., 'click' and 'onclick' are the same thing to dojo). This differs from Widget Events in the sense Dijit uses mixedCase event names, to avoid potential conflicts.

0

Возможно, это проблема с контекстом выполнения. Попробуйте использовать парование:

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

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

Спасибо за ваш ответ, к сожалению, это не работает. С ошибкой: 'uncaught exception: dojo.hitch: scope [" workpicDown "] равно null (scope =" [object Window] ")' –

+0

hmm .. Это означает, что событие инициировано .. Не могли бы вы предоставить немного больше кода ? – Andrei

+0

Эта ошибка возникает при загрузке страницы, а не при нажатии на изображение. Когда я нажимаю изображение, ничего не происходит. –

Смежные вопросы