0

我对 Dojo 移动视图 (TweetViews) 中的转换事件有疑问。我想对视图更改执行操作(例如动态加载内容)。到目前为止,我已经尝试了以下方法:

on(document.getElementById("add"),"onBeforeTransitionIn", function(){
    console.log("test");
});

onAfterTransitionInonBeforeTransitionOut也不onAfterTransitionOut行。

我怎样才能让它工作?

4

2 回答 2

1

Dojo 将小部件(如dojox/mobile视图)与 DOM 节点(如您使用的那个)分开document.getElementById()。这意味着您不能onBeforeTransitionIn在普通 DOM 节点上使用事件处理程序,就像您实际尝试做的那样。

幸运的是,小部件从 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/

于 2013-12-18T09:02:44.073 回答
0

由于移动视图是一个小部件,您应该尝试在小部件而不是 DOM 节点上注册您的事件。例子:

on(registry.byId("add"), "onBeforeTransitionIn", ...)

注册表参考http://dojotoolkit.org/reference-guide/1.9/dijit/registry.html

于 2013-12-18T08:59:50.213 回答