导航到页面时会触发'backbutton'事件

时间:2012-10-30 15:16:24

标签: javascript android cordova jquery-mobile

我正在使用jQM / Phonegap而我正试图控制Android的后退按钮。这是我构建的函数的简化版本:

var currFunc = undefined;
function setButton () {
    var func = arguments[0];

    document.removeEventListener('backbutton', currFunc, false);
    currFunc = func;
    document.addEventListener('backbutton', currFunc, false);
}

我现在在每个setButton()事件上调用pagebeforeshow来取消设置任何处理程序。比如,在页面B上,我现在打电话给setButton(function() { alert(1); });。 首先,这似乎有效:在页面A上没有任何反应,单击页面B上的按钮将导致警报。到现在为止还挺好。但现在,当我回到第A页并点击一个再次让我进入Page B的按钮时,它就会触发警报。

我很困惑。听众应该a)无论如何都要取消设置; b)只有在按下电话的后退按钮时才会触发,而不是仅仅在应用程序内导航时。

有没有人对此有任何信息或想法?提前谢谢!

1 个答案:

答案 0 :(得分:0)

仍然不知道为什么原始代码不起作用,但使用评论中提到的方法可行。