0

嗨,我有一些 jQuery Mobile 并且pageshow工作正常(它有问题但工作正常),如下所示:

$(document).off('pageshow').on('pageshow', function () { 
   console.log('it happened');
});

注意:我在缓存方面遇到了许多(阅读:丢失了数周)问题,所以尽管有所有相反的信息,我还是担心off()必须留下来。你会和我争论,我会坚持off(),我会是对的。

好的,但是当我将其更改为

$(document).off('pagebeforeshow').on('pagebeforeshow', function () { 
   console.log('it happened');
});

它不运行。现在我知道你应该做类似的事情

$(document).off('pagebeforeshow').on('pagebeforeshow', '#somediv', function () { 
   console.log('it happened');
});

但我不希望它出现在我希望它出现在整个文档上的那个 div 上。

4

1 回答 1

0

您可以在离开这样的特定页面时进行测试(在我的情况下有效):

--> 启动一个循环函数( setInterval ),如果您仍在该页面上,则每 2 秒测试一次,如果不是(这意味着您刚刚离开该页面),则只执行一次函数

这是代码:

<script>$('#YOUR_PAGE').bind('pageshow', function(data) { 
      var repeat = setInterval(function() {
      var page_path = $.mobile.path.parseUrl(window.location).toString().toLowerCase() ;
      var page_page = page_path.split("#"); 
          if ( page_page[1]  != "YOUR_PAGE"){

          ...
          DO YOUR THING
          ...

          clearInterval(repeat);
               }
          }, 2000);
      });
</script> 
于 2014-09-16T11:04:29.013 回答