我有一个模块,其中包含一个生成内容的switch语句,以及各种on
个事件,这些事件依赖于插入到DOM中的内容,然后激活哪个触发器。
我发现使用on
的{{1}}事件处理程序:
dom.byId('foo')
产生错误:
on(dom.byId('foo'), touch.press, function(e){
。
我可以理解这一点 - 如果节点Uncaught TypeError: cannot read property 'on' of null
尚不存在,因为已经满足了不同的切换条件,但我已经设法通过使用css类代替它:
foo
但是这与on(query('.foo'), touch.press, function(e){
具有相同的存在机会!
我对Dojo来说相对较新,并且乐于“掌握”它,并且我很想知道为什么会这样,但是如果它是一个大红旗我做错了什么!
答案 0 :(得分:1)
没有完整的代码很难说,但如果你想使用查询,你需要使用这种方式:
require(["dojo/query"], function(query){
query(".foo").on("click", clickHandler);
});
我不知道你的项目的上下文,但如果它是移动你可能会看到“dojo / gesture / tap”,就像在doc中的这个例子:
define(["dojo/on", "dojo/gesture/tap", function(listen, tap){
on(button, tap, tapHandler);
...