JQM中的Pageshow添加了新页面而不删除旧页面

时间:2014-11-03 15:58:05

标签: javascript jquery-mobile

我的网页存在问题。 我认为这就是这个问题:https://stackoverflow.com/questions/24350594/jqm-pageshow-event-firing-number-of-times-on-page-visit

每次我回去进入我的页面(使用pageshow)它会再次加载所有内容(如我所愿),但如果我进入3次,4次或更多次,似乎我有两页或更多页面。因此,每次按下按钮将数据发送到服务器时,它都会执行多次(我出去并进入该网页的次数)

每次进入内部时我都需要重新加载整个页面,所以我不能用它来代替:

$(document).on("pageshow", '#activity', function() {

我也尝试过:

$(document).off("pageshow", '#activity').on("pageshow", '#activity', function() {

但似乎没有用。

每次外出时都有办法消除网页吗?我只想要一份副本

1 个答案:

答案 0 :(得分:1)

要添加绑定/附加监听器(例如clickchange等),它们应放在pagecreate事件内,因为它每页触发一次。该事件相当于.ready()

$(document).on("pagecreate", '#activity', function() {
  /* listeners */
  $("#foo").on("change", function () {
    $.ajax();
  });
});

使用pageshow / pagecontainershow及类似的事件来操纵DOM或执行其他功能。

jQM 1.3

$(document).on("pageshow", '#activity', function() {
  /* manipulate DOM */
  $("#foo").removeClass("bar");

  /* run functions */
  $.doSomething();
});

jQM 1.4

$(document).on("pagecontainershow", function(e, data) {
  if(data.toPage[0].id == "activity") {
    /* manipulate DOM */
    $("#foo", data.toPage).removeClass("bar");

    /* run functions */
    $.doSomething();
  }
});