我正在做一个网站吨行,当你连续按下我隐藏其余的人。要再次显示所有人,您必须再次按下,但客户可能需要按浏览器/手机的后退按钮。在后退按钮触发事件
我正在寻找的方式JS或jQuery的是:
如果行是隐藏的,按后退按钮做一些事情(再次显示所有行),如果没有进行正常的返回按钮的funcionality。
有什么想法?
在此先感谢。
我正在做一个网站吨行,当你连续按下我隐藏其余的人。要再次显示所有人,您必须再次按下,但客户可能需要按浏览器/手机的后退按钮。在后退按钮触发事件
我正在寻找的方式JS或jQuery的是:
如果行是隐藏的,按后退按钮做一些事情(再次显示所有行),如果没有进行正常的返回按钮的funcionality。
有什么想法?
在此先感谢。
您需要使用历史记录API。
使用history.pushState()
在单击某行时创建新状态。
注册一个回调到window.onpopstate
修改用户点击后退按钮时的行为(您可以取消event
并做你的东西)。
例(未经测试,jQuery的可选):
$('.row').on('click', function() {
// do your stuff
window.pushState({rowId: rowId}); // you might need the additional parameters, particularly to change the URL
});
$(window).on('popstate', function(event) {
if ('rowId' in event.state) {
// do your stuff
event.preventDefault();
}
});
更多信息:
https://developer.mozilla.org/en-US/docs/Web/API/History_API
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate
真的很有帮助,我没有使用pushState函数,而是使用了代码的第二部分。如果我只显示一行的类名,我正在控制。如果我找到.row.open这意味着我只显示一行,所以我必须显示其余的行,如果不是不取消事件。 –
try this
function detectBrowser()
{
window.onpopstate = function(event)
{
alert('helloindia');
};
}
detectBrowser();
@Tyler它不是一个不好的做法,完全可能,这是大多数前端框架(AngularJS,ReactJS等)路由器的工作原理 – Mistic