在jquery mobile中隐藏div内的按钮

时间:2014-07-15 13:49:28

标签: jquery asp.net-mvc asp.net-mvc-4 jquery-mobile

您好我们使用jquery mobile和mvc开发Web应用程序。在一个标准中,我需要在页面加载时隐藏div内的按钮。在几个标准我需要显示按钮。

查看

<div id="ContentSerialNumberSearch">
                    <input type="submit" id="btnSerialScac" name="btnDPSearch"  data-theme="d" value="@Resources.ViewScac" data-ajax="false"/>
                    <input type="submit" id="btnSerialLane" name="btnDPSearch"  data-theme="d" value="@Resources.ViewLane" data-ajax="false"/>
                </div>

脚本

$(document).on("pageinit", function () {
       $('#btnSerialScac').closest('.ui-btn').hide();
       $('#btnSerialLane').closest('.ui-btn').hide();
   });

以上代码效果很好。但是我使用了pageinit事件,所以即使我访问其他页面,每次执行该函数。这将导致性能问题。所以我尝试下面的代码。

脚本

 $( document ).on( "pagecontainershow",'#ContentSerialNumberSearch', function ( event, ui ) {
       $('#btnSerialScac').closest('.ui-btn').hide();
       $('#btnSerialLane').closest('.ui-btn').hide();
   });

所以我认为上述脚本只有在dom中加载特定div时才会执行。但是DOM内的按钮并没有隐藏。我尝试过pageshow,mobileinit事件但没有用。请指导我。

1 个答案:

答案 0 :(得分:0)

我不是100%清楚你想要实现的目标,但是要使用showcontainer widget事件进行show,你会这样做:

$("body").on( "pagecontainershow", function( event, ui ) {
       $('#btnSerialScac').closest('.ui-btn').hide();
       $('#btnSerialLane').closest('.ui-btn').hide();
});

或代替正文,“:mobile-pagecontainer”

$(":mobile-pagecontainer").on( "pagecontainershow", function( event, ui ) {
       $('#btnSerialScac').closest('.ui-btn').hide();
       $('#btnSerialLane').closest('.ui-btn').hide();
});
  

这是 DEMO

每次在页面之间导航时,使用pagecontainershow都会隐藏按钮。