Jquery mobile 确定jQuery Mobile的pagebeforechange事件的调用方

Jquery mobile 确定jQuery Mobile的pagebeforechange事件的调用方,jquery-mobile,Jquery Mobile,我认为这个问题和你的问题是一样的,但没有得出结论性的答案 有人知道如何获取触发事件的对象吗 $document.bindpagebeforechange、函数事件、数据{ //事件是从锚定标记触发的。。。 //有可能在这里得到锚的参考吗? }; 谢谢 更完整的例子: 单独提问 自从上次按计划提示后,你有多生气? 没有一个 一些 很多 我希望能够确定是什么触发了pagebeforechange事件-prev按钮或next按钮。这样做的目的是在进入下一页之前执行验证,而不是在返回上一页时执行验证。t

我认为这个问题和你的问题是一样的,但没有得出结论性的答案

有人知道如何获取触发事件的对象吗

$document.bindpagebeforechange、函数事件、数据{ //事件是从锚定标记触发的。。。 //有可能在这里得到锚的参考吗? }; 谢谢

更完整的例子:

单独提问 自从上次按计划提示后,你有多生气? 没有一个 一些 很多
我希望能够确定是什么触发了pagebeforechange事件-prev按钮或next按钮。这样做的目的是在进入下一页之前执行验证,而不是在返回上一页时执行验证。

toPage是否适用于此

JS

HTML


toPage对这个有用吗

JS

HTML


这不是我想要的那么优雅,但它适用于我的解决方案,我认为是你的解决方案。jQuery在调用任何页面事件(如pagebeforechange)之前调用任何单击事件。我只是强迫我的锚元素将它们的ID附加到它们的数据角色=页面容器

第一:

$('a[href="#ce"]').on('click',function(){
    $(this).closest('div[data-role="page"]').attr('data-caller',$(this).attr('id'));
});
我现在使用DataCaller来确定刚才单击的锚

下一步:


最后,根据您的新页面,您可能希望删除data direction=“reverse”上的data caller属性,这样就不会意外地再次调用它。

这没有我希望的那么优雅,但它适用于我的解决方案,我认为您的解决方案也适用。jQuery在调用任何页面事件(如pagebeforechange)之前调用任何单击事件。我只是强迫我的锚元素将它们的ID附加到它们的数据角色=页面容器

第一:

$('a[href="#ce"]').on('click',function(){
    $(this).closest('div[data-role="page"]').attr('data-caller',$(this).attr('id'));
});
我现在使用DataCaller来确定刚才单击的锚

下一步:


最后,根据您的新页面,您可能希望删除data direction=“reverse”上的data caller属性,以避免再次意外调用该属性。

在检查返回的事件和数据对象并搜索jQuery Mobile的github时,这似乎是不可能的。我将修改href以调用javascript函数,然后执行$.mobile.changePage。如果有人有其他想法,我很乐意听听。在检查返回的事件和数据对象并搜索jQuery Mobile的github时,这似乎是不可能的。我将修改href以调用javascript函数,然后执行$.mobile.changePage。如果有人有任何其他想法,我很想听听。我知道你在说什么-使用toPage来确定哪一个被点击。不幸的是,在我的场景中,toPage不会给我足够的信息,因为我有很多页面都有prev和next按钮。因此,下一个按钮的顶部也是上一个按钮的顶部。我明白你的意思-使用顶部来确定单击了哪个按钮。不幸的是,在我的场景中,toPage不会给我足够的信息,因为我有很多页面都有prev和next按钮。所以下一个按钮的顶部也是上一个按钮的顶部。
$('a[href="#ce"]').on('click',function(){
    $(this).closest('div[data-role="page"]').attr('data-caller',$(this).attr('id'));
});
$(document).on('pagebeforechange',function(event,data){
    //makes sure that a valid link is actually clicked and ignores init
    if (data.toPage.toString().indexOf('#')>-1 && $(data.options.fromPage).attr('data-url')!==undefined){
            //Determines which page jqm is changing to
            if(data.toPage.split('#')[1]=='ce'){
                switch($('#'+_from).attr('data-caller')){
                    case 'ID_of_anchor_1':
                        //UNIQUE CODE FOR ANCHOR 1
                        break;
                    case 'ID_of_anchor_2':
                        //UNIQUE CODE FOR ANCHOR 2
                        break;
                }
            }
        }
    });