2012-04-24 22 views
25

私はHistory API用に少しデモをコーディングしています。 ...私は「前」ボタンをクリックしたときにjQueryバインドポップステートイベントが渡されません

しかし、私は代わりにこれを行う場合に予想されるように、物事が働いている:それは未定義ポップ」をログに記録し

$(window).bind('popstate', 
    function(event) { 
     console.log('pop: ' + event.state); 
    }); 

:そして、私はこれで苦労しています:jQueryのコールバックにイベントオブジェクトを渡しませんのようなので、それはだ

...この時間:

window.onpopstate = function(event) { 
    console.log('pop: ' + event.state); 
}; 

それは「[オブジェクトのオブジェクト]ポップ」をログに記録します。
jQueryに問題はありますか?それとも、私は何か混乱しましたか?

+0

どのブラウザですか? http://stackoverflow.com/questions/4688164/window-bind-popstateを見たことがありますか?あなたのコメントのために –

+0

thx、それは私が問題が何であるかを理解するのを助け、私は少し質問を変更しました。あなたが指しているものと同じではありません。なぜなら、最初の負荷では問題ではないからです。 –

答えて

33

最初のインスタンスでは、正規化されたjQueryイベントオブジェクトが取得されています。 2番目のインスタンスでは、ブラウザのイベントオブジェクトを取得しています。 jQueryは新しいHTML5イベントと関連する属性すべてを正規化していないと仮定します。それまでは、元のイベントオブジェクトにアクセスする必要があります。これは、jQueryイベントオブジェクトを通じて、originalEventプロパティを使用して行うことができます。ここでいくつかの詳細と例を見つけることができます:stackoverflow.com/questions/7860960/popstate-returns-event-state-is-undefined

event.originalEvent.state 
+0

ニースキャッチ!私は質問する前にこの質問を見たことがありませんでした:( –

+0

ありがとう!私はcatchの完全な信用を取りたいが、stackoverflowは私のためにそれをした。右の余白の関連リストに気付いた。あなたの開発努力の中で最高! – KSev

関連する問題