Pagebeforehide事件仅为inner"触发;页面转换
pagebeforehide event fired just for "inner" page transitions
我需要在离开页面(页面'#first')时做一些事情。很简单:
$(document).on('pagebeforehide', '#first', function(event, ui) {alert('leaving page');});
当我用"内部"链接离开页面时没有问题,就像这样:
<a href="#second" data-role="button">Open something</a>
这里事件被触发,处理程序被执行。
但是当我想打开外部链接时,就像这样:
<a href="http://www.google.com" rel="external" data-role="button">Open something</a>
事件未触发,处理程序未执行。
页面内容简单或复杂并不重要——我发现这只取决于链接是内部的还是外部的。
怎么了?
rel="external"意味着页面将作为外部页面打开,所有以前的页面内容(包括其脚本)将丢失,这也将触发整个页面刷新,因此您的pagebeforehide事件不会触发,因为它将不再存在。
Mobile页面事件只能在正常页面更改时发生。基本上我想说的是,你需要去另一个jQuery Mobile页面来触发这个事件。在你的情况下,你是强制应用程序做一个完整的页面刷新,在这一点上,页面刷新将发生在pagebeforehide事件。EDIT:
虽然没有任何跨浏览器的解决方案,但你总是可以作弊。
而不是有href链接在你的按钮,用#代替你的链接http://www.google.com并添加一个id,这样我们就可以识别它,像这样:
开放一些
现在为这个按钮添加一个点击事件,并在将页面更改为www.google.com:
之前做任何需要做的事情 $(document).on('click', '#change-page', function(){
// Do something here then change page
});
或者将您的按钮链接到另一个虚拟的内页(仅用于此目的),在它上捕获pagebeforehide:
$(document).on('pagebeforehide ', function(){ // Again do something here and manualy change the page });
相关文章:
- CSS3:当页面向下滚动到第一个视口时,是否可以在元素上触发转换
- 使用JavaScript触发CSS转换
- 下拉菜单转换为单选按钮,不再触发特定功能
- 转换后触发css悬停状态更改
- 触发CSS转换,使用来自Javascript的样式,从内部指令完成回调
- 转换是在添加特定于转换的css属性之前所做的更改的触发.为什么?
- 由标签触发的潜水转换
- 如何从JavaScript设置和触发css转换
- 从父级转换时,不会触发 Ember 子路由模型方法
- 为什么这个 CSS3 转换没有被触发
- 转换结束事件未触发
- 转换结束事件触发两次
- jQuery在验证时触发转换
- 通过使用Javascript移除类来触发CSS转换
- 当没有属性更改时,jQuery中未触发CSS转换事件
- 如何让mvc动作触发jquery ajax转换器
- 在鼠标进出时触发不透明度转换
- angular如何在ng样式触发转换的css转换结束时监听事件?
- 如何在 vue.js 的组件中加载数据时触发转换
- 触发转换结束和结束转换