javascript – Dojo:如何将自定义参数传递给事件处理程序

前端之家收集整理的这篇文章主要介绍了javascript – Dojo:如何将自定义参数传递给事件处理程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
刚开始使用Dojo.我想将一些自定义参数传递给事件处理程序.在jQuery中,你可以这样做:
$('#button').click({
    customData: 'foo'
},handlerFunction);

并且可以从handlerFunction访问customData,如下所示:

function handlerFunction(event) {
    console.log(event.data.customData);
}

我正在将一些jQuery代码迁移到Dojo.如何将这些参数传递给Dojo事件处理程序?

解决方法

好吧,通常,闭包允许您将“隐藏”参数传递给函数
function make_event_handler(customData){
    return function(evt){
        //customData can be used here
        //just like any other normal variable
        console.log(customData);
    }
}

所以在dojo中连接事件时:

dojo.connect(node,'onclick',make_event_handler(17));

我喜欢的另一种可能性是使用dojo.partial / dojo.hitch为您创建闭包.

function event_handler(customData,evt){
     ///
}

dojo.connect(node,dojo.partial(event_handler,17))

请注意,所有这些都需要在创建事件处理程序的同时记住额外的参数.我不知道你是否可以更直接地翻译JQuery代码,因为这需要额外的evt变量按摩,我不认为dojo会这样做.

猜你在找的JavaScript相关文章