我正在做一個網站噸行,當你連續按下我隱藏其餘的人。要再次顯示所有人,您必須再次按下,但客戶可能需要按瀏覽器/手機的後退按鈕。在後退按鈕觸發事件
我正在尋找的方式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