gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 05:03:05 25 4
gpt4 key购买 nike

刚开始使用 Dojo。我想将几个自定义参数传递给事件处理程序。在 jQuery 中,您可以这样做:

$('#button').click({
customData: 'foo'
}, handlerFunction);

customData 可以像这样从 handlerFunction 访问:

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, 'onclick', dojo.partial(event_handler, 17))

请注意,所有这些都要求您在创建事件处理程序时考虑传递额外参数。我不知道您是否可以对 JQuery 代码进行更直接的翻译,因为这需要对 evt 变量进行额外的处理,我认为 dojo 不会那样做。

关于javascript - 如何将自定义参数传递给事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com