首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinJS.Application.addEventListener对WinJS.Application.onActivated

WinJS.Application.addEventListener对WinJS.Application.onActivated
EN

Stack Overflow用户
提问于 2012-11-27 19:22:41
回答 2查看 724关注 0票数 3

MSDN文档展示了为Win8 WinJS应用程序设置onactivated事件的两个选项:

代码语言:javascript
复制
WinJS.Application.addEventListener("activated", listenerName);

代码语言:javascript
复制
WinJS.Application.onactivated = listenerName;

这两个选项在引擎盖下的行为是否相同,还是有理由使用一种方法而另一种方法呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-28 01:16:20

这些是一样的。"onactivated“是由onFoo事件混合器创建的免费WinJS事件。你可以任意使用而不受惩罚。

我自己更喜欢addEventListener模式。

票数 2
EN

Stack Overflow用户

发布于 2012-11-28 01:52:33

onactivated样式被称为“DOMLevel0”,因为它在技术上并不是DOM的一部分,而是它在DOM起草之前的发展方式。addEventListener方法被称为"DOM 2“方法。正如Dominic所说,两者本质上是等同的,但我碰巧更喜欢onactivated风格,原因之一是。我喜欢用这样的匿名函数.

代码语言:javascript
复制
app.onactivated = function(args) {
    ...
};

但是,如果您使用DOM 2方法,那么养成使用匿名函数的习惯是个坏主意,因为您无法获得该函数的句柄,因此永远无法删除它。所以如果你这么做..。

代码语言:javascript
复制
app.addEventListener("activated", function(args) {
    ...
});

那么,您就没有这个函数的句柄,也无法将其移除。因此,您需要定义这样的命名函数.

代码语言:javascript
复制
app.addEventListener("activated", myActivatedFunction);
function myActivatedFunction(args) {
    ...
}

这样,如果你需要移除处理程序,你可以.

代码语言:javascript
复制
app.removeEventListener("activated", myActivatedFunction);

在我的codeSHOW项目中的事件处理程序演示中有一个这样的例子。

玩得开心。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13591519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档