我正在用jQuery开发一个Cordova应用程序。
在我的index.js中,我有以下代码:
$(document).ready(function() {
console.log("ready");
// Initialize the app
app.initialize();
});
// Define the app
var app = {
// Initialize the app
initialize: function() {
// deviceready Event Handler
$(document).on('deviceready', function() {
console.log("Device is ready!");
// 'deviceready' is an DOM element on the Html page.
this.receivedEvent('deviceready');
});
},
// Update DOM on a Received Event
receivedEvent: function(id) {
var parentElement = document.getElementById(id);
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
},
...
}
字符串
当我在Cordova中运行脚本时,它抛出了一个错误:
TypeError: this.receivedEvent is not a function
型
似乎“this”对象没有被正确引用为app。
3条答案
按热度按时间cld4siwp1#
你也可以像下面这样做。
字符串
tvokkenx2#
因为
this
在deviceready
处理函数中是不同的。使用箭头函数:字符串
或者只是避免在函数中初始化事件侦听器--最好在脚本的顶部一次性完成。
vql8enpb3#
你也可以这样做
字符串