首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合tap和双tap离子事件

结合tap和双tap离子事件
EN

Stack Overflow用户
提问于 2015-10-11 18:45:29
回答 3查看 803关注 0票数 2

我被搜索了几个例子,但我没有找到解决我的问题的任何东西。我的问题很简单,我需要一个有两个事件的元素,一个点击和双点击事件。我是这样做的,但这些事件交织在一起,我不需要这个..我需要点击元素两次(双击),元素的状态被选中,如果我点击一次元素被取消选择,现在没有被选中。我也这么做,结果是一样的,事件一起发生.有人知道怎么做吗??

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-11 19:28:29

我用

代码语言:javascript
复制
         $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");

                    .....
                }


        };
票数 -1
EN

Stack Overflow用户

发布于 2017-03-19 23:59:01

试试这个:

请参阅维卡斯·高塔姆(@Vikasg7 7)在CodePen上所作的笔画“@Vikasg7 7”。

以下是指令:-

代码语言:javascript
复制
  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)
         })
      }    
   }

请检查以上代码,以确保全面实施。

票数 1
EN

Stack Overflow用户

发布于 2015-10-11 19:01:57

http://www.gajotres.net/ionic-framework-series-13-touch-gestures/在评论部分说离子已经禁用了与onTap相关的延迟,这是用来分别检测这些抽头类型的。没有提到解决办法,只是不可能把它们区分开来。

片段文本:

不幸的是,一年前所做的更改从Ionic应用程序中删除了300 one的单击延迟。我说这很不幸,因为现在应用程序无法正确地检测到同一元素上的抽头/双击。他们两个都会触发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33068762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档