2012-02-23 10 views
6

ページ変更を引き起こしたページのdata-urlを取得したいとします。何か案は?Jquery Mobile - pagebeforechangeイベントでdata-urlを取得する方法

$(document).bind("pagebeforechange", function (event , data) { 
    console.log(data.options.fromPage.attr('data-url')); 
});​ 

(注)documentに結合しているためという。

$(document).bind("pagebeforechange", function (event , data) { 
    // get the data-url of the link that triggered the page change 
}); 

答えて

8

を行うことができないあなたは、ユーザーがdataオブジェクト内で来て、そこからページを取得することができます1つのdata-role="page"要素ではなく、fromPageの場合は1回、toPageの場合は1回、ページ変更ごとに2回実行されます。各ページのイベントのイベントハンドラに渡されるデータは、他のページのデータと同じになります。ここで

はデモです:http://jsfiddle.net/Atfrf/2/

+0

2回発射しますが、2回目にはtoPageはありません。現在のページが必要な場合は、いつでも行うことができます:$ .mobile.activePage.attr( 'data-url') –

0

なぜあなたは$(this).parent('div[data-role|="page"]').attr('data-url')

+1

this'は 'document'要素を参照します'ので、現在OPは、 'document'要素に結合されます。 '[data-role =" page "]'のようなものにバインドした場合、 'this'を使うことができますが、このイベントは両方のページで発生するので、両方のページが自分のイベントで' this'と等しくなりますハンドラー。 – Jasper

2

attrの方法は、一部のブラウザでは動作しないので、あなたはjqmDataメソッドを使用する方が良いと思います。 jqmDataは任意の名前空間で動作できます。

$(document).bind("pagebeforechange", function (event , data) { console.log(data.toPage.jqmData('url')); });​

関連する問題