Jquery 页面内的移动面板滑动事件和选项卡滑动事件?

Jquery Mobile Panel Swipe Event and Tabs Swipe Event Inside a page?

我在单个 html 中有多个页面。 我有一个外部面板,可以在所有页面中滑入和滑出(面板可以打开和关闭)。在一页中,我有滑动标签功能。 Panel 和 Swipe Tabs 功能现在都很好.. 我的问题是当我进入滑动标签页面时,滑动标签也会拉动面板,如何调整这些滑动事件?如何正确检测滑动标签和面板滑动事件。

这里是我创建的DEMO,我还需要一个面板,它也可以通过滑动事件打开和关闭。用户可以在滑动和滑动之间滑动以打开和关闭左侧面板,面板必须是外部的,以便它可以在整个页面中使用。 不幸的是面板在演示中不工作我不知道发生了什么,但在我的项目中工作。

要添加外部面板,可以使用正则jQuery文档准备:

var panel = '<div data-theme="a" data-role="panel" data-display="overlay" id="leftpanel"><ul data-role="listview"><li data-icon="false"><a data-ajax="false" href="index.html">Home</a></li><li data-icon="false"><a data-ajax="false" href="html/examples.html">Examples</a></li><li data-icon="false"><a data-ajax="false" href="html/custom/version.html">Version 1.0.1</a></li></ul></div>';

$(function () {
    $("body").prepend(panel);
    $("[data-role=panel]").panel().enhanceWithin();
});

然后您可以监听在内容 div 上滑动以更改选项卡,并在 header div 至 open/close 面板上监听:

$("div[data-role=content]").on("swipeleft", function (event) {
    changeNavTab(true);
});
$("div[data-role=content]").on("swiperight", function (event) {
    changeNavTab(false);
});

// Navigation  Drawer Swipe Listener
$("div[data-role=header]").on("swipeleft swiperight", function (e) {
    // save swipe direction right/left
    var dir = 'prev';
    if (e.type == 'swiperight') {
        dir = 'next';
    }
    if (dir == 'prev') {
        $('#leftpanel').panel('close');

    } else {
        $('#leftpanel').panel('open');

    }
});

Updated FIDDLE