【问题标题】:AngularJS - Using ngTouch within a directive for mobile devicesAngularJS - 在移动设备指令中使用 ngTouch
【发布时间】:2015-06-01 03:57:00
【问题描述】:

我正在使用ngTouch 来消除移动设备上的延迟,但在移动设备上单击图像没有任何作用。在我的应用程序中,单击图像会调用放大图像的指令,因此没有ng-click。这是指令:

app.directive('imageZoom', ['ngDialog', function(ngDialog) {
    return {
        restrict: 'A',
        scope: {
            image: '='
        },
        link: function(scope, element, attr) {
            attr.$observe('ngSrc',function(img) {
                element.bind('click', function(e) {
                    e.stopPropagation();
                    if (something) {
                        doSomething();
                    } else {
                        ngDialog.open({
                           some template here
                        });
                    }
                });
            });
        }
    };
}]);

在我介绍 ngTouch 之前,这一切正常,所以我相信它的 element.bind('click' 方面存在问题,它没有注册点击。它在浏览器上工作得非常好,所以指令 确实 工作。

【问题讨论】:

    标签: javascript angularjs angular-touch


    【解决方案1】:

    收听element.bind('touchstart click', function(){ ... },而不是只点击element.bind('click', function(){ ... }

    【讨论】:

    • 我添加了这个,它可以工作,但是如果我尝试从图片开始向下滚动页面,它也会将其注册为单击并放大图片。它应该只将点击注册为对图像的点击,而不是从图像开始的滑动。你有什么想法吗?
    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多