Javascript Jquery Mobile-如何在pagebeforechange事件中获取数据url

Javascript Jquery Mobile-如何在pagebeforechange事件中获取数据url,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我想获取触发页面更改的页面的数据url。有什么想法吗 $(document).bind("pagebeforechange", function ( event , data) { // get the data-url of the link that triggered the page change }); 为什么您不能执行$(this).parent('div[data role |=“page”]).attr('data-url')您可以获得用户进入数据对象的页面: $(do

我想获取触发页面更改的页面的数据url。有什么想法吗

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

为什么您不能执行
$(this).parent('div[data role |=“page”]).attr('data-url')
您可以获得用户进入
数据对象的页面:

$(document).bind("pagebeforechange", function ( event , data ) {
    console.log(data.options.fromPage.attr('data-url'));
});​
请注意,由于您绑定到的是
文档
元素,而不是单个
数据role=“page”
元素,因此每次页面更改都会触发两次,一次用于
fromPage
,一次用于
toPage
。为每个页面的事件传递到事件处理程序的数据将与其他页面的数据相同


下面是一个演示:

attr方法在某些浏览器中不起作用,因此您最好使用jqmData方法。 jqmData可以在任何名称空间中工作

$(文档).bind(“pagebeforechange”,函数(事件,数据){
log(data.toPage.jqmData('url');

});​

当前OP绑定到
文档
元素,因此
将引用
文档
元素。如果您绑定到类似于
[data role=“page”]
的内容,那么您可以使用
this
,但由于此事件在两个页面上都触发,您将在各自的事件处理程序中得到两个页面都等于
this
。它会触发两次,但第二次没有toPage。如果您想要当前页面,可以随时执行:$.mobile.activePage.attr('data-url')