我被搜索了几个例子,但我没有找到解决我的问题的任何东西。我的问题很简单,我需要一个有两个事件的元素,一个点击和双点击事件。我是这样做的,但这些事件交织在一起,我不需要这个..我需要点击元素两次(双击),元素的状态被选中,如果我点击一次元素被取消选择,现在没有被选中。我也这么做,结果是一样的,事件一起发生.有人知道怎么做吗??
谢谢
发布于 2015-10-11 19:28:29
我用
$scope.onDoubleTap = function(event){
setTimeout(function(){
if(!$(element).hasClass("selected")) {
$(element).addClass("selected");
......
}
},400);
};
$scope.onTap = function(event){
if($(element).hasClass("selected")){
$(element).removeClass("selected");
.....
}
};发布于 2017-03-19 23:59:01
试试这个:
请参阅维卡斯·高塔姆(@Vikasg7 7)在CodePen上所作的笔画“@Vikasg7 7”。
以下是指令:-
SepTap.$inject = ["$ionicGesture"]
function SepTap(IonicGesture) {
return {
restrict: "A",
link: linkFunc
}
function linkFunc(scope, ele, attrs) {
var isDoubleTap = false
var tap = IonicGesture.on("tap", onTap, ele)
var doubleTap = IonicGesture.on("doubletap", onDoubleTap, ele)
function onTap() {
setTimeout(onTap, 250)
function onTap() {
if (isDoubleTap) return
scope.$apply(attrs.stTap)
}
}
function onDoubleTap() {
isDoubleTap = true
scope.$apply(attrs.stDoubleTap)
// onTap is called twice almost immediadetly with a delay
// of 250ms, so using a delay of 300ms (50ms more) to
// reset isDoubleTap to false.
setTimeout(function () { isDoubleTap = false }, 300)
}
ele.on("$destroy", function () {
IonicGesture.off(tap, "tap", onTap)
IonicGesture.off(doubleTap, "doubletap", onDoubleTap)
})
}
}请检查以上代码,以确保全面实施。
发布于 2015-10-11 19:01:57
http://www.gajotres.net/ionic-framework-series-13-touch-gestures/在评论部分说离子已经禁用了与onTap相关的延迟,这是用来分别检测这些抽头类型的。没有提到解决办法,只是不可能把它们区分开来。
片段文本:
不幸的是,一年前所做的更改从Ionic应用程序中删除了300 one的单击延迟。我说这很不幸,因为现在应用程序无法正确地检测到同一元素上的抽头/双击。他们两个都会触发。
https://stackoverflow.com/questions/33068762
复制相似问题