Jquery 在JQM pageshow中,pagebeforeshow不起作用

Jquery 在JQM pageshow中,pagebeforeshow不起作用,jquery,jquery-mobile,pageshow,Jquery,Jquery Mobile,Pageshow,您好,我有一些jQuery Mobile和pageshow,工作正常。它有漏洞,但工作正常,如下所示: $(document).off('pageshow').on('pageshow', function () { console.log('it happened'); }); 注意:我已经读过很多次了:几周过去了,缓存出现了问题,所以我担心,尽管所有的信息都与此相反,关闭功能必须保持。你会和我争论,我会避开,我会是对的 好的,但是当我把它改成 $(document).off('pa

您好,我有一些jQuery Mobile和pageshow,工作正常。它有漏洞,但工作正常,如下所示:

$(document).off('pageshow').on('pageshow', function () { 
   console.log('it happened');
});
注意:我已经读过很多次了:几周过去了,缓存出现了问题,所以我担心,尽管所有的信息都与此相反,关闭功能必须保持。你会和我争论,我会避开,我会是对的

好的,但是当我把它改成

$(document).off('pagebeforeshow').on('pagebeforeshow', function () { 
   console.log('it happened');
});
它不跑了。现在我知道你应该做一些类似的事情

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

但我不希望它只出现在那个div中,我希望它出现在整个文档中。

在我的情况下,您可以在离开这样一个特定页面时进行测试:

->启动一个循环函数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> 

我必须使用它,我们是开源的,所以必须使用开源依赖项。它基本上是一个隐藏在浏览器中的秘密浏览器,一旦你做到了这一点,就可以使用它,而不需要使用封闭源代码依赖项。只需为使用jQm的位编写自己的代码。如果您不知道jqm是如何做的,请查看jqm源代码。jQm所做的大多数事情都相对容易找到替代的解决方案,而不像jquery。连接到整个身体怎么样?它在我的test$文档中工作。off'pagebeforeshow'。在'pagebeforeshow',body',函数中,当我返回时,它不会像pageshow那样启动,因为这里有一把小提琴:这两个事件似乎都像新的pagecontainer事件一样正常启动。你能把这个问题用小提琴复制出来吗?