MSDN文档展示了为Win8 WinJS应用程序设置onactivated事件的两个选项:
WinJS.Application.addEventListener("activated", listenerName);或
WinJS.Application.onactivated = listenerName;这两个选项在引擎盖下的行为是否相同,还是有理由使用一种方法而另一种方法呢?
发布于 2012-11-28 01:16:20
这些是一样的。"onactivated“是由onFoo事件混合器创建的免费WinJS事件。你可以任意使用而不受惩罚。
我自己更喜欢addEventListener模式。
发布于 2012-11-28 01:52:33
onactivated样式被称为“DOMLevel0”,因为它在技术上并不是DOM的一部分,而是它在DOM起草之前的发展方式。addEventListener方法被称为"DOM 2“方法。正如Dominic所说,两者本质上是等同的,但我碰巧更喜欢onactivated风格,原因之一是。我喜欢用这样的匿名函数.
app.onactivated = function(args) {
...
};但是,如果您使用DOM 2方法,那么养成使用匿名函数的习惯是个坏主意,因为您无法获得该函数的句柄,因此永远无法删除它。所以如果你这么做..。
app.addEventListener("activated", function(args) {
...
});那么,您就没有这个函数的句柄,也无法将其移除。因此,您需要定义这样的命名函数.
app.addEventListener("activated", myActivatedFunction);
function myActivatedFunction(args) {
...
}这样,如果你需要移除处理程序,你可以.
app.removeEventListener("activated", myActivatedFunction);在我的codeSHOW项目中的事件处理程序演示中有一个这样的例子。
玩得开心。
https://stackoverflow.com/questions/13591519
复制相似问题