我有以下代码来测试菜单按钮:
<script type="text/javascript" cahrset="utf-8">
//wait till device is ready
document.addEventListener("deviceready", onDeviceReady(), false);
//add a menu button event handler
function onDeviceReady() {
alert('deviceready');
document.addEventListener("menubutton", onMenuKeyDown(), false);
}
//fired when menubutton of device is clicked
function onMenuKeyDown() {
alert('menu key down');
}
</script>
然而,当我按下菜单按钮时,没有任何反应。 Logcat没有说什么,但我猜这是因为它来自标签“web console”,它可能很有用:
10-13 15:46:16.720: INFO/Web Console(13969): Error in success callback: Network Status1 = TypeError: Cannot read property 'apply' of undefined at :-2167
我从Phonegap API Reference开始遵循本教程,但它似乎无法按下我的菜单按钮。 任何帮助?非常感谢,daniel
编辑:也许这有助于您了解最新情况:当我按下菜单按钮时,logcat显示
10-18 09:21:52.560: WARN/WindowManager(152): statePower =normal
此外,事件“searchbutton”也不起作用
答案 0 :(得分:3)
从我所看到的情况来看,这听起来像是听众的问题。通过在函数名称的末尾添加括号,您可以在设置侦听器时立即调用该函数,而不是设置事件的引用以便稍后触发。
尝试:
document.addEventListener("deviceready", onDeviceReady, false);
和
document.addEventListener("menubutton", onMenuKeyDown, false);
希望这有帮助!
答案 1 :(得分:0)
检查您的正文标记。确保它调用 onload()函数。像这样:
<body onload="onLoad()">
答案 2 :(得分:0)
好的,这个对我有好处
var menuOpen = true;
var menuDiv = "";
function onLoad(){
document.addEventListener("deviceready", onDeviceReady, false);
menuDiv = document.querySelector("#menu");
}
function onDeviceReady(){
document.addEventListener("menubutton", onMenuKeyDown, false);
}
function onMenuKeyDown() {
if(menuOpen) {
console.log("close the menu");
menuDiv.style.display="none";
menuOpen = false;
} else {
console.log("open the menu");
menuDiv.style.display="block";
menuOpen = true;
}
}