我在Dojo移动视图(TweetViews)中遇到转换事件的问题。我想对视图更改执行操作(如动态加载内容)。到目前为止,我尝试了以下内容:
on(document.getElementById("add"),"onBeforeTransitionIn", function(){
console.log("test");
});
onAfterTransitionIn
,onBeforeTransitionOut
和onAfterTransitionOut
也不起作用。
我怎样才能让它发挥作用?
答案 0 :(得分:1)
Dojo从DOM节点(例如dojox/mobile
获得的小部件)分隔小部件(如document.getElementById()
视图)。这意味着你不能在普通的DOM节点上使用onBeforeTransitionIn
事件处理程序,就像你实际上要做的那样。
幸运的是,您的小部件会从DOM节点调整其ID,因此它仍应为"add"
。要按其ID检索窗口小部件,请使用:
var myView = registry.byId("add");
dojo/on
模块只应与DOM事件一起使用。实际上,您可以使用自定义窗口小部件事件,但我认为这不是处理这些事件的正确方法。通常,您应该使用小部件on()
功能,例如:
myView.on("beforeTransitionIn", function() {
// Do something
});
另请注意,您忽略了活动名称前面的"on"
部分。您也可以使用dojo/on
模块执行此操作,因此将其记住以备将来使用可能会很有趣。
我还制作了一个小型JSFiddle来演示事件处理,你可以在这里找到:http://jsfiddle.net/g00glen00b/qct3L/。
答案 1 :(得分:0)
由于移动视图是一个小部件,您应该尝试在小部件而不是DOM节点上注册您的事件。例如:
on(registry.byId("add"), "onBeforeTransitionIn", ...)
注册表引用http://dojotoolkit.org/reference-guide/1.9/dijit/registry.html