2014-10-31 77 views
1

我在jQuery Mobile的“面板”上执行的过滤功能:jQuery Mobile的选择onClose事件会

  • 我点击任何按钮,呼叫过滤,从左侧面板中的幻灯片并有过滤器选项设置电流滤波器。
  • 如果多个选择框包含很多选项,它将显示在覆盖整个页面的黑色背景上,并关闭面板。

我需要重新打开过滤器面板此对话框复选关闭后...

我使用这个:

$('#filter select').bind('change',function(){ 
    $('#filter').panel('open'); 
}); 

这是如果用户确实任何OK改变打开的对话框(选择)...
但是,如果他只是关闭这个对话框使用X按钮没有任何改变?对话框消失,但面板不会重新打开。

非常感谢您的帮助。

回答

3

jQuery的移动定制selectmenu要么转换成弹出或取决于屏幕尺寸和选项长度的对话框

selectmenu是对话框时,它将导航到一个新的对话框页面。在这种情况下,您可以收听pagecontainer事件以检索之前的prevPage和下一页toPage

如果上一页是对话框/选择菜单,请在下一页中打开面板。

$(document).on("pagecontainershow", function (e, data) { 
    var previousPage = data.prevPage, 
     nextPage = data.toPage; 
    if (previousPage.hasClass("ui-selectmenu")) { /* or ui-dialog */ 
     $(".ui-panel", nextPage).panel("open"); 
    } 
}); 

Demo

+0

我使用JQM 1.3.2,我已经发现,pagecontainershow可自1.4.1 - 所以我用 “pageshow”,而不是。那么这个作品完美! – Pavel 2014-10-31 13:42:25

+0

@ user1846815不客气。我建议使用jQM 1.4.4,很快1.3将会过时并且不受支持。 – Omar 2014-10-31 13:43:40

+0

我同意 - 这是“较旧”的项目,并且在从1.3.x更改为1.4.x时存在一些不兼容的地方 - 所以我在等待这个好机会......但是我知道,我必须改变这个。谢谢! – Pavel 2014-10-31 13:50:01