gpt4 book ai didi

javascript - dojo 小部件不会发出事件

转载 作者:行者123 更新时间:2023-11-28 01:46:25 24 4
gpt4 key购买 nike

我有一个自定义的 dojo 小部件,我需要监听另一个第 3 方小部件上的事件,然后将该事件与事件对象一起发送到另一个自定义小部件。由于某种原因,我的自定义小部件未发出事件,或者该事件未在我的第二个自定义小部件中正确注册。

这是我的第一个自定义小部件中与事件相关的代码:

onSelectComplete : function(evt) {
// this custom widget inherits from dojo/Evented. I've tried using this.emit and I've tried inheriting from _WidgetBase
on.emit(self, "select", evt);
},

startDrawing : function() {

//self._drawToolbar is the 3rd party widget from an API
self._drawToolbar.activate(Draw.POLYGON);

self._drawEndHandle = self._drawToolbar.on("draw-end", self.onSelectComplete);

},

这是我的第二个自定义小部件中的监听器:

on(self._selector, "select", function(evt) {
console.log(evt);
});

对于监听器,我尝试监听 onSelectCompleteselectCompleteSelectCompleteselectcompleteselect-complete 但没有一个起作用。我还尝试使用 aspect.after 而不是 on,但这也不起作用。我在调试时能够确定第一个自定义小部件的 onSelectComplete 被正确调用。

我被困住了...

最佳答案

抱歉,我没有及时提供答案,但我确实找到了解决方案。

我没有让我的 dojo 模块继承自 dojo/Evented,而是让它继承自 dijit/_WidgetBase。通过这样做,我的自定义 dojo 模块/小部件现在实现了 on 函数。

因此,在我的第一个小部件中,我有一个名为 onSelectComplete : function (evt) {} 的空函数,当我想要发出事件时,我会调用该函数。

在我的第二个小部件中,我的代码是:

on(self._selector, "selectComplete", function(evt) {
console.log(evt);
});

关于javascript - dojo 小部件不会发出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249437/

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