如何在被调用的函数中访问用于dojo.event.connect的事件?

时间:2011-07-27 18:03:58

标签: javascript-events dojo

首先,我使用的是旧版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)访问在单击_btn时在myFunction中触发的事件。谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道是否有更方便的方法来解决您的问题,但在最坏的情况下,您可以使用闭包作为传递参数的万无一失的方法:

改变我的功能
myfunction(arg1, arg2){

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

并使用dojo.partial(或dojo.hitch)创建一个始终将某个按钮作为参数显示的函数(然后将其传递给连接):

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