我想在 Backbone
的特定 View 中为 Cordova
事件添加一个监听器,因此此刻我使用 document< 执行此操作
:
var View = Utils.View.extend({
initialize: function() {
document.addEventListener( "online", function( ) { // cordova event
alert("connected");
// ....
}, false);
}
});
但每次我更改 View 并返回到此 View
时,都会附加一个新的事件监听器,因此文档有许多监听器,但我只需要一个。
那么,如何向该 View 添加一次事件监听器,并避免每次访问该 View 时都创建新的事件监听器?
谢谢
最佳答案
我过去通过执行以下操作解决了类似的问题:
在应用程序加载时添加监听器,而不是在 View 加载时添加监听器
让监听器调用一个函数来检查特定变量设置为 true 或 false
初始化特定 View 时,将变量设置为true
当特定 View 被替换时,或者当任何其他 View 被初始化时,将该变量设置为 false
监听器调用的函数将如下所示:
function onlineEventCallback () {
if(app.checkOnline) {
alert('connected');
}
}
这将允许监听器仅设置一次,并确保它仅在特定 View 当前已初始化时返回任何内容。
关于javascript - 在 Backbone View 中添加 Cordova 事件监听器,而不是所有文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24371337/