2013-07-01 47 views
0

我是JQM的新手,我正在使用Phongeap和JQM进行新项目。 我的JavaScript是在一个单一的JS文件,我从多个HTML文件加载视图。多个页面上的jqm侧面板的事件监听器

由于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); 
} 

所以这里是问题。它实际上在第一页上正常工作。但在第二页上Menuitems将不起作用,我猜测事件监听器不在监听新面板,因为在html面板中加载了两次!事件侦听器只侦听第一个面板(从第一个页面),它不会显示在第二个页面上。

任何帮助表示赞赏!

回答

0

您是否在第二页上动态添加面板?在JQM 1.3中,您必须将面板分别添加到每个页面,但在未来版本中将删除此限制。

使用事件代表团动态面板:

$(document).on('click' ,'#menu_search' function() { 
     switchPageTo('search.html') 
    });