Как получить доступ к событию, которое используется для dojo.event.connect в вызываемой функции? - PullRequest
1 голос
/ 27 июля 2011

Во-первых, я использую версию более старой версии dojo, поэтому dojo.event.connect - правильный синтаксис.У меня такой вопрос: как мне получить доступ к событию в функции, которую я вызываю, когда событие запускается.

По сути, я динамически создаю кнопку, а затем подключаю событие к onClick

var _btn = dojo.widget.createWidget(widget parameters); dojo.event.connect(_btn,"onClick","myFunction");

В myFunction мне нужно иметь доступ к атрибутам _btn.Я попытался передать _btn в качестве контекста dojo.event.connect, но это не работает.Он также не будет передавать _btn в качестве параметра для myFunction, когда я пытаюсь это сделать.Возможно ли либо A) каким-либо образом передать _btn в качестве параметра в myFunction, либо B) получить доступ к событию, которое вызывается в myFunction при нажатии _btn.Спасибо!

1 Ответ

0 голосов
/ 28 июля 2011

Я не знаю, есть ли более удобный способ решения вашей проблемы, но в худшем случае вы можете просто использовать замыкание в качестве верного способа передачи параметра:

изменить мою функцию с

myfunction(arg1, arg2){

в

myfunction(btn, arg1, arg2){
     //using btn here

и используйте dojo.partial (или dojo.hitch), чтобы создать функцию, которая всегда отображает определенную кнопку в качестве параметра (и затем передает ее соединению):

dojo.event.connect(_btn, 'onClick', dojo.partial(myFunction, _btn));
...