jQuery Mobile 1.4从dom中删除了上一页

时间:2014-03-07 01:52:34

标签: javascript jquery jquery-mobile

使用jQuery Mobile,直到v1。,您可以删除用户从dom中删除的页面:

$('#Page').live('pagehide', function () {
    $(this).remove();
});

然而,Pagecontainer Widget是从jQM 1.4开始处理这类事情的正确方法。我的问题是,我无法使用jQM 1.4重新创建此操作。

我试过了

$(":mobile-pagecontainer").on( "pagecontainershow", function( event, ui ) {
    $(ui.prevPage).remove();     
});

和许多类似的变化,使用pagecontainerhide,pagecontainerbeforeshow等,但我没有成功。 .live('pagehide')版本是在用户离开的页面中调用的,使得事情更容易访问,而pagecontainerhide不是从该“页面”内调用的。

杀死我的主要问题是我正在使用自适应日历(请参阅:http://www.vissit.com/jquery-event-calendar-plugin-english-version),并且当您第一次转到日历所在的页面时,它可以正常工作,但是当您导航时远离该页面并在以后返回它,由于eventcalendar插件中的js,页面的某些部分是重复的。此外,离开日历后的每个页面也都有JS错误。我只想从dom中删除此页面并进行适当的清理,以便不会发生这种情况。

作为旁注,我也愿意使用不同的日历插件。我需要它以响应并具有像上面的日历插件一样的“月”视图。当用户在该月内的某一天点击/触摸时,我还需要有活动。我喜欢这个,但唯一的缺点是它不是完全全屏。我很想找到一个很好的全屏日历来模仿原生应用程序(比如谷歌日历的月视图在android上看起来如何)

2 个答案:

答案 0 :(得分:2)

我正在使用最新的JQM 1.4.4,我也遇到过这种情况。

$( document ).on( 'mobileinit', function () {

  //this doesn't work
  $(':mobile-pagecontainer').on( 'pagecontainershow', function( event, ui ) {
    ui.prevPage.remove();     
  });

  //this doesn't work either
  $('body').on( 'pagecontainershow', function( event, ui ) {
    ui.prevPage.remove();     
  });

  //this is the only thing that worked for me
  $(document).on( 'pagecontainershow', function( event, ui ) {
    ui.prevPage.remove(); 

    //this way of removing content (on pageshow or pagehide) no
    //longer works reliably for me either. I see DOM nodes being
    //generated, but nothing cleaning up
    //$( event.currentTarget ).remove();     
  });
});
祝你好运!

答案 1 :(得分:0)

ui.prevPage已经是一个jQuery集合对象。所以试试:

$(":mobile-pagecontainer").on( "pagecontainershow", function( event, ui ) {
    ui.prevPage.remove();     
});