Phonegap + JQuery Mobile:如何从Android菜单按钮触发弹出窗口?

时间:2013-11-26 03:10:38

标签: javascript android jquery-mobile cordova

我在一个简单的Phonegap 3.1应用程序中创建了这个片段,基于JQuery Mobile弹出文档:

<div data-role="popup" id="popupMenu" data-theme="e">
    <ul data-role="listview" data-inset="true" style="min-width:210px;" data-theme="e">
        <li><a href="javascript:loadHelp()">Help</a></li>
        <li><a href="javascript:loadAbout()">About</a></li>
    </ul>
</div>

<a href="#popupMenu" data-rel="popup" data-role="button">
    Click for menu
</a>

单击该按钮会显示菜单。

我还在外部.js文件中包含此代码段:

$(document).ready( function() {
    document.addEventListener("menubutton", onMenuKeyDown, false);
})

function onMenuKeyDown() {
    alert("Menu key pressed!");
    // what goes here?      
}

按下菜单按钮会显示提醒,因此我知道聆听者正在工作。现在,我想在onMenuKeyDown()函数中添加一些代码,这样就会调出第一个代码片段中按钮加载的菜单。代码需要等同于单击

<a href="#popupMenu" data-rel="popup">Click here</a>

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:2)

好吧,我找到了办法。它有效,但似乎有点hacky。建议采取其他方式来做到这一点。

首先,使原始链接不可见并为其指定ID:

<a href="#popupMenu" style="display: none;" id="hammerTime" data-rel="popup" data-role="button" >
     Can't touch this! 
</a>

然后点击菜单按钮隐藏链接:

function onMenuKeyDown() {
    // alert("Menu key pressed!");
    $("#hammerTime").click()      
}

希望其他人在此过程中发现这一点很有用。