我想獲取觸發頁面更改的頁面的data-url。有任何想法嗎?Jquery Mobile - 如何獲取pagebeforechange事件中的數據url
$(document).bind("pagebeforechange", function (event , data) {
// get the data-url of the link that triggered the page change
});
我想獲取觸發頁面更改的頁面的data-url。有任何想法嗎?Jquery Mobile - 如何獲取pagebeforechange事件中的數據url
$(document).bind("pagebeforechange", function (event , data) {
// get the data-url of the link that triggered the page change
});
從用戶的data
對象內的可以讓頁面:
$(document).bind("pagebeforechange", function (event , data) {
console.log(data.options.fromPage.attr('data-url'));
});
注意,因爲你要綁定到document
元素而不是一個data-role="page"
元素,它將針對每個頁面更改觸發兩次,一次針對fromPage
,一次針對toPage
。傳遞給每個頁面事件的事件處理程序的數據將與其他頁面的數據相同。
這裏是一個演示:http://jsfiddle.net/Atfrf/2/
你爲什麼不能做$(this).parent('div[data-role|="page"]').attr('data-url')
目前OP被綁定到'document'元素,所以'this'將參考'document'元素。如果你綁定了類似'[data-role ='page']''的東西,那麼你可以使用'this',但是由於這個事件在兩個頁面上都會觸發,所以在他們自己的事件中,這兩個頁面都等於'this'處理程序。 – Jasper 2012-02-23 18:07:31
的ATTR方法不是在某些瀏覽器工作,所以你最好使用jqmData方法。 jqmData可以在任何名稱空間中工作。
$(document).bind("pagebeforechange", function (event , data) { console.log(data.toPage.jqmData('url')); });
它確實發生了兩次,但第二次沒有toPage。如果你想要當前頁面,你可以在任何時候執行:$ .mobile.activePage.attr('data-url') – 2014-07-07 08:18:18