2015-06-01 17 views
0

我正在使用ngTouch移除移動設備上的延遲,但在移動設備上點擊圖像什麼也不做。在我的應用程序中,單擊圖像會調用放大圖像的指令,因此沒有ng-click。這裏是指令:AngularJS - 在移動設備的指令中使用ngTouch

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'方面的基礎是不登記的點擊。它確實在瀏覽器上工作得很好,但是指令確實可以在下工作。

回答

0

收聽element.bind('touchstart click', function(){ ... }而不是隻點擊element.bind('click', function(){ ... }

+0

我加了這個,它可以工作,但如果我嘗試從圖片開始向下滾動頁面,它也會將其註冊爲點擊並放大圖片。它只應該將點擊註冊爲圖片上的點擊,而不是從圖片開始的滑動。你有什麼想法? – germainelol