History APIの小さなデモをコーディングしています。そして私はこれに苦労しています:
$(window).bind('popstate',
function(event) {
console.log('pop: ' + event.state);
});
「前へ」ボタンをクリックすると、「ポップ:未定義」が記録されます...
しかし、代わりにこれを行うと、物事は期待どおりに機能します:
window.onpopstate = function(event) {
console.log('pop: ' + event.state);
};
今回は「pop:[オブジェクトオブジェクト]」をログに記録します...
つまり、jQueryがイベントオブジェクトをコールバックに渡さないようです。
jQueryに問題がありますか?または私は何かを台無しにしましたか?
最初のインスタンスでは、正規化されたjQueryイベントオブジェクトを取得しています。 2番目のインスタンスでは、ブラウザーのイベントオブジェクトを取得しています。私はjQueryがすべての新しいHTML5イベントと関連する属性の正規化を完了していないと思います。それまでは、元のイベントオブジェクトにアクセスする必要があります。それには、originalEventプロパティを介してjQueryイベントオブジェクトを使用します。ここでいくつかの追加の詳細と例を見つけることができます: stackoverflow.com/questions/7860960/popstate-returns-event-state-is-undefined
event.originalEvent.state