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