我想創建一個按鈕,它將運行先前運行的函數。即我點擊buttonA來運行功能A然後點擊按鈕B來運行功能B我想有一個按鈕,允許用戶通過點擊後退按鈕返回到functionA。Jquery後退按鈕。
我想我可以一個全局變量來保存先前的語句,但它不會工作,因爲每個函數將運行會覆蓋存儲的語句。這裏是一些psuodo代碼樣的解釋我的意思
var globalvar;
globalvar = functionA;
function B { run globalvar};
我想創建一個按鈕,它將運行先前運行的函數。即我點擊buttonA來運行功能A然後點擊按鈕B來運行功能B我想有一個按鈕,允許用戶通過點擊後退按鈕返回到functionA。Jquery後退按鈕。
我想我可以一個全局變量來保存先前的語句,但它不會工作,因爲每個函數將運行會覆蓋存儲的語句。這裏是一些psuodo代碼樣的解釋我的意思
var globalvar;
globalvar = functionA;
function B { run globalvar};
使用哈希超鏈接和hashchange
事件。在jQuery的:
$(window).on('hashchange',function() {
var hash = location.hash.substring(1); // strip the leading # symbol
// now run code based on whatever the value of 'hash' is
});
HTML:
<a href="#hash1">function A</a>
<a href="#hash2">function B</a>
現在,每當用戶點擊瀏覽器的「後退」按鈕(或HTML按鈕觸發history.go(-1)
),它會回到什麼哈希以前選中並再次觸發hashchange事件。
http://jsfiddle.net/mblase75/hL5FZ/
警告:舊的瀏覽器IE7一樣或may not support hashchangehistory.go()
。
[可能在這個問題中找到已有的歷史插件](http://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin)。 – kapa
@bažmegakapa是的,儘管如果不需要舊的瀏覽器支持,那些插件可能是矯枉過正的。我可能會使用[Modernizr](http://modernizr.com/)獲得支持,並針對這些罕見的情況進行解決。 – Blazemonger
當然,只是認爲值得添加它作爲評論。有時你只是不想重新發明輪子:)。 Upvoted btw。 – kapa
JQuery的方法,並應用類回鏈接,如:
$(document).ready(function(){
$('a.back').click(function(){
parent.history.back();
return false;
});
});
類似:如何檢測瀏覽器後退按鈕事件 - 跨瀏覽器](http://stackoverflow.com/q/25806608/55075)在SO – kenorb