jquery mobile pagehide事件无法触发及代替方案

jquery mobile有两种方式:一种是使用ajax方式,即每次只是更新data-role=page的div的内容(即我们其实一直在一个页面上,只是通过ajax在修改部分内容),另一种方式是使用非ajax方式,每次都加载单独的html页面。

 

之前使用cordova开发H5 App的时候一直使用ajax方式,pagehide事件用的没啥问题;而这次使用了非ajax方式,pagehide事件无法fire了。而pagebeforeshow,pageshow事件在两种情况下都OK。


ajax方式下事件执行过程参考:

 Understanding jQuery-Mobile page firing events - why dialog pageshows when closing


在非ajax方式下的替代方案:

浏览器也有自己的nativepagehide event,可以使用浏览器的pagehide event

    if (typeof window.addEventListener) {
        window.addEventListener("pagehide", function () {
            console.log('browser pagehide');
        });
    }

参考:

jQuery Mobile pagehide and native pagehide DOM events

既然涉及到window的native事件,那么其pagebeforeunload以及pageunload事件也可以使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值