1

1 つのドキュメント内に一連のページがあり、タッチ デバイスのスワイプを使用してページ間を移動します。

方法がわからないのは、特定のページ ID に到達したらスワイプ イベントを停止することです。

これは、ナビゲーションから使用しているコードです。

$('div.ui-page').live("swipeleft", function(){
var nextpage = $(this).next('div[data-role="page"]');
if (nextpage.length > 0) {
$.mobile.changePage(nextpage, "slide", false, true);
}
});
$('div.ui-page').live("swiperight", function(){
var prevpage = $(this).prev('div[data-role="page"]');
if (prevpage.length > 0) {
$.mobile.changePage(prevpage, {transition: "slide",
reverse: true}, true, true);
}
});

JQM 1.3を使用しています

ご協力ありがとうございました

4

2 に答える 2

4

これが実際の例です: http://jsfiddle.net/Gajotres/GXex5/

$(document).off('swipeleft').on('swipeleft', '[data-role="page"]', function(event){    
    if($(this).attr('id') == 'article2') {
        event.preventDefault();
        return false;
    }
    var nextpage = $.mobile.activePage.next('[data-role="page"]');
    // swipe using id of next page if exists
    if (nextpage.length > 0) {
        $.mobile.changePage(nextpage, {transition: "slide", reverse: false}, true, true);
    }
    event.handled = true;

});

$(document).off('swiperight').on('swiperight', '[data-role="page"]', function(event){   
    var prevpage = $(this).prev('[data-role="page"]');
    if (prevpage.length > 0) {
        $.mobile.changePage(prevpage, {transition: "slide", reverse: true}, true, true);
    }
    event.handled = true;
});

基本的に必要なのは次のコードだけです。

if($(this).attr('id') == 'article2') {
    event.preventDefault();
    return false;
}

このコードは、ページに特定の名前があるかどうかを確認し、そうである場合はデフォルト アクション (イベント) を防ぎます。また、コードでイベント オブジェクトを渡すことを忘れないでください。

これを変える:

$('div.ui-page').live("swiperight", function(){

これに:

$('div.ui-page').live("swiperight", function(event){
于 2013-04-09T20:19:53.870 に答える