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

plupiseo  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(130)

首先,我使用的是旧版本的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中激发的事件。

pw9qyyiw

pw9qyyiw1#

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

myfunction(arg1, arg2){

变成

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

并使用dojo.partial(或dojo.hitch)创建一个函数,该函数总是接收某个按钮作为参数(然后将其传递给connect):

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

相关问题