Jquery mobile 在jQuery Mobile中右击触发两次

Jquery mobile 在jQuery Mobile中右击触发两次,jquery-mobile,jquery-plugins,Jquery Mobile,Jquery Plugins,我正在尝试将插件集成到我的站点中,以便可以滑动删除。然而问题是这个插件是用“swiperight”触发的,同样的swipe事件被用来显示我的面板。我使用event.target.tagName成功地分离了事件。当它是a(链接)时,我想激活滑动删除按钮,否则我想滑入面板 换言之,pageinit事件被触发两次,因此“滑动到删除”按钮开始出现,然后再次触发相同的事件。我想以某种方式取消一个动作,但我无法让它工作。我已经试过了: event.stopImmediatePropagation(); ev

我正在尝试将插件集成到我的站点中,以便可以滑动删除。然而问题是这个插件是用“swiperight”触发的,同样的swipe事件被用来显示我的面板。我使用
event.target.tagName
成功地分离了事件。当它是
a
(链接)时,我想激活滑动删除按钮,否则我想滑入面板

换言之,pageinit事件被触发两次,因此“滑动到删除”按钮开始出现,然后再次触发相同的事件。我想以某种方式取消一个动作,但我无法让它工作。我已经试过了:

event.stopImmediatePropagation();
event.stopPropagation();
event.preventDefault();
我也尝试使用这里给出的一些解决方案,但没有成功:

我的问题的演示可以在snip中找到,我当前的pageinit函数如下:

$(document).on('pageinit', function() {
    //Activate horizontal swipe after x px.
    $.event.special.swipe.horizontalDistanceThreshold = 80;
    $('div[data-role="content"]').on("swiperight", function(event) {
        //If tagname is 'A' you probably want slide to delete not the panel
        if(event.target.tagName != 'A') {
            $.mobile.activePage.find("#menu").panel("open");
        } else {
            //Cancel swipe
            event.stopImmediatePropagation();
        }
    });

    //Swipe to delete
    $("#swipe li").swiper( {
        corners: false,
        label: "Verwijder",
        swipe: function(event, ui) {
            alert('trigger');
        },
        click: function(event, ui) {
            var $item = $(this);
            //console.log($(this));
            $item.fadeOut(250, function() {
                $item.remove();
            });
        }
    });
}); 

使用以下插件修复了这个问题:它能够简单地从事件中排除元素