2016-08-16 131 views
-1

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

我正在尋找的方式JS或jQuery的是:

如果行是隱藏的,按後退按鈕做一些事情(再次顯示所有行),如果沒有進行正常的返回按鈕的funcionality。

有什麼想法?

在此先感謝。

+0

@Tyler它不是一個不好的做法,完全可能,這是大多數前端框架(AngularJS,ReactJS等)路由器的工作原理 – Mistic

回答

0

您需要使用歷史記錄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

+0

真的很有幫助,我沒有使用pushState函數,而是使用了代碼的第二部分。如果我只顯示一行的類名,我正在控制。如果我找到.row.open這意味着我只顯示一行,所以我必須顯示其餘的行,如果不是不取消事件。 –

1
try this 


function detectBrowser() 
    { 
    window.onpopstate = function(event) 
    { 
    alert('helloindia'); 
    }; 
    } 
    detectBrowser(); 
相關問題