2011-10-13 19 views
0

我有以下代碼來測試菜單按鈕:的PhoneGap - 菜單按鈕犯規火什麼

<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控制檯」,它可能是有用的:

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跟着這個教程,但它似乎沒有處理我的菜單按鈕按下。 有幫助嗎?感謝很多提前,丹尼爾

編輯:也許這是有幫助的,你知道怎麼回事:當我按下菜單按鈕,logcat的顯示

10-18 09:21:52.560: WARN/WindowManager(152): statePower =normal 

還,事件「搜索按鈕」不工作或者

回答

3

從我所看到的情況來看,這聽起來像是一個問題。通過在函數名稱末尾添加括號,您可以在設置偵聽器時立即調用函數,而不是設置稍後觸發的事件引用。

嘗試:

document.addEventListener("deviceready", onDeviceReady, false); 

和:

document.addEventListener("menubutton", onMenuKeyDown, false); 

希望這有助於!

0

檢查您的機構標記。確保它調用onload()函數。就像這樣:

<body onload="onLoad()"> 
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; 
       } 
}