问题
I want to create a button which will run a previously ran function. ie i click buttonA to run Function A then click button B to run functionB i want to have a button which allows the user to go back to functionA by clicking a back button.
i thought i could a global variable to hold previous statements but it would not work as every function ran would overwrite the stored statements. here is some psuodo code to kind of explain what i mean
var globalvar;
globalvar = functionA;
function B { run globalvar};
回答1:
Use hash hyperlinks and the hashchange
event. In 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>
Now, whenever the user clicks the browser's "back" button (or an HTML button that triggers history.go(-1)
), it will go back to whatever hash was previously selected and trigger the hashchange event again.
http://jsfiddle.net/mblase75/hL5FZ/
Warning: older browsers like IE7 may not support hashchange or history.go()
.
回答2:
JQuery method, and apply the class back to the link, e.g.:
$(document).ready(function(){
$('a.back').click(function(){
parent.history.back();
return false;
});
});
来源:https://stackoverflow.com/questions/10399188/jquery-back-button