2016-11-22 62 views
1

如何防止$ionicGesture事件在'pinchin'或'pinchout'后'拖'?阻止拖后事件

我试过e.preventDefault(),e.gesture.preventDefault(),但拖动事件仍然被触发。

$ionicGesture.on("drag", function (e) { 
    cursor_gesture = e.gesture; 
    cursor_center = cursor_gesture.center; 
    _drag_to_edit(); 
}, photo); 
$ionicGesture.on("pinchin", function (e) { 
    console.log(e); 
    e.preventDefault(); 
}, photo); 
$ionicGesture.on("pinchout", function (e) { 
    console.log(e); 
    .preventDefault(); 
}, photo); 

回答

0

您也可以尝试这些:

event.preventDefault(); 
    event.stopPropagation(); 
    event.gesture.stopPropagation(); 
    event.gesture.preventDefault(); 
    event.gesture.stopDetect(); 
+0

我想的preventDefault只会阻止默认浏览器动作要与事件处理程序一起运行。而stopPropagation只会阻止事件冒泡,所以恕我直言,它们与其他类型的事件无关。 –

0

手动阻止其他事件处理程序的给定时间:

var lastPinchTime = undefined; 
var dragBlockTimeAmmount = 1000; //1 second 
$ionicGesture.on("drag", function (e) { 
    if((new Date() - lastPinchTime) < dragBlockTimeAmmount){ 
    e.preventDefault(); 
    } 
    else { 
    // ... 
    // your code here 
    // ... 
    } 

}, photo); 
$ionicGesture.on("pinchin", function (e) { 
    lastPinchTime = new Date(); 
}, photo); 
$ionicGesture.on("pinchout", function (e) { 
    lastPinchTime = new Date(); 
}, photo);