来自"byId"的 Dojo 'on' 事件触发 TypeError



我有一个模块,它包含一个生成内容的switch语句,以及各种等待的on事件,这些事件取决于将什么内容插入DOM,然后激活哪个触发器。

我发现使用dom.byId('foo'):的on事件处理程序

on(dom.byId('foo'), touch.press, function(e){

产生错误:

Uncaught TypeError: cannot read property 'on' of null

我可以理解这一点——如果节点foo还不存在,因为已经满足了不同的切换条件,但我已经通过使用css类来绕过它:

on(query('.foo'), touch.press, function(e){

但这与id有着同样的存在机会!

我对Dojo还比较陌生,掌握它很"有趣",我很想知道为什么会发生这种情况,但如果这是一个很大的危险信号,那就是我做错了什么!

没有完整的代码很难说,但如果你想使用查询,你需要使用这种方式:

require(["dojo/query"], function(query){
  query(".foo").on("click", clickHandler);
});

我不知道你的项目的上下文,但如果是移动项目,你可能会看到"dojo/手势/点击",比如文档中的这个例子:

define(["dojo/on", "dojo/gesture/tap", function(listen, tap){
on(button, tap, tapHandler);
...

相关内容

  • 没有找到相关文章

最新更新