2012-05-01 17 views
3

以前に実行された機能を実行するボタンを作成したいと思います。つまり、ボタンAをクリックして機能Aを実行し、次にボタンBをクリックして機能Bを実行します。ユーザーが戻るボタンをクリックしてfunctionAに戻ることができるボタンが必要です。Jquery戻るボタン。

私は以前のステートメントを保持するためのグローバル変数があると思っていましたが、実行されたすべての関数がストアドステートメントを上書きするため、機能しません。ここでは種類の私は

var globalvar; 
globalvar = functionA; 
function B { run globalvar}; 
+0

同様:[ブラウザに戻るボタンのイベントを検出する方法 - クロスブラウザ](http://stackoverflow.com/q/25806608/55075)でSO – kenorb

答えて

12

使用ハッシュハイパーリンクとhashchangeイベント何を意味するかを説明するためにいくつかのpsuodoコードがあります。 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:ユーザーがブラウザの「戻る」ボタン(またはhistory.go(-1)をトリガーHTMLボタン)をクリックするたびに今

<a href="#hash1">function A</a> 
<a href="#hash2">function B</a> 

、それが戻って何でもハッシュへ行く前にしました選択され、hashchangeイベントを再度トリガします。

http://jsfiddle.net/mblase75/hL5FZ/

警告:IE7 may not support hashchangeまたはhistory.go()などの古いブラウザ。

+0

(この問題の既存の履歴プラグインが見つかりました)(http://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin) – kapa

+1

@bažmegakapaええ、古いブラウザのサポートが必要ない場合、それらのプラグインはおそらく過剰です。私は[Modernizr](http://modernizr.com/)をサポートのために使用し、そのまれなケースの代わりにそれを回避するかもしれません。 – Blazemonger

+0

もちろん、それをコメントとして追加する価値があると思っただけです。ときどき、ホイールを再発明したくない場合もあります。 Upvoted btw。 – kapa

3

jQueryの方法、およびリンクに戻ってクラスを適用、例えば:

$(document).ready(function(){ 
    $('a.back').click(function(){ 
    parent.history.back(); 
    return false; 
    }); 
});