0

我是 JQM 的新手,我正在将 Phongeap 与 JQM 一起用于一个新项目。我的 javascript 在一个 js 文件中,我正在从多个 html 文件中加载视图。

由于 siede 面板的转换效果很差,当我通过更改页面时,<a href="page2.html">我尝试对 Menuitems 使用事件侦听器。

    function setPanelListeners(){
    $('#menu_search').click(function() {
                            switchPageTo('search.html');
                            });
    $('#menu_schedule').click(function() {
                              switchPageTo('program.html');
                              });
    $('#menu_news').click(function() {
                              switchPageTo('news.html');
                              });
}

我在每个页面的 pagebeforeshoe 事件上调用这个函数。为了将转换修复为我需要的方式,我使用了这个函数

    // Close Panel then change page
function switchPageTo(url){
    $('#menupanel').panel('close');
    setTimeout(function() {
               $.mobile.changePage( url, { transition: 'fade'} );
            },200);
}

所以这就是问题所在。它实际上在第一页上运行良好。但是在第二页菜单项不起作用,我猜事件列表器没有监听新面板,因为在 html 中面板被加载了两次!并且事件侦听器仅侦听未显示在第二页上的第一个面板(来自第一页)。

任何帮助表示赞赏!

4

1 回答 1

0

您是否在第二页上动态添加面板?在 JQM 1.3 中,您必须为每个页面单独添加面板,尽管此限制将在未来的版本中删除。

对动态面板使用事件委托:

$(document).on('click' ,'#menu_search' function() {
        switchPageTo('search.html')
   });
于 2013-07-01T14:23:55.283 回答