function AddclickFn(selector,idx){ return $ionicGesture.on('click',clickFn,angular.element(document.querySelector(selector)),$scope.idx={idx:idx}); };
将idx存入options.idx在作为对象存入$scope.idx,这样clickFn就可以使用$scope.idx.idx,即参数idx的值。
这里虽然写法二能实现效果,但我总感觉这样写不好,希望有大牛能给点建议,给我留言或者qq联系,多谢!
移除手势监听函数:
function OffclickFn(clickGesture){ $ionicGesture.off(clickGesture,'click',clickFn); };
我把需要注意的地方都加注释了,上完整代码:
注册、解除手势事件都是按顺序,先button1在button2点击bind一次button注册一次事件bind点击unbind一次button解除一次事件unbindidCardNick button1licenseNick button2 on(eventType, callback, $element) off(eventType, callback, $element) 参数 类型 详情 eventType string 监听的手势事件。 callback function(e) 当手势事件发生时触发的事件。 $element element angular元素监听的事件。*/ /* //完整汇总: $ionicGesture服务--注册/解除手势事件监听: on(eventType,callback,$element,options) - 注册手势事件监听函数 参数eventType是支持的事件类型; 参数callback指定监听函数; 参数$element是要绑定事件的jqLite元素。 参数options是on方法返回对象的一个子对象options on()方法返回的是一个ionic.gesture对象,可供解除监听用。 off(gesture,eventType,callback) - 解除手势事件监听函数 参数gesture是on()方法返回的结果对象, 参数eventType是支持的事件类型 参数callback是要移除的监听函数。 $ionicGesture服务支持的事件类型有: hold, tap, doubletap, drag, dragstart, dragend, dragup, dragdown, dragleft, dragright, swipe, swipeup, swipedown, swipeleft, swiperight, transform, transformstart, transformend, rotate, pinch, pinchin, pinchout, touch, release*/ angular.module(]) .controller(, function ($scope,$ionicGesture){ $scope.data=[]; var clickGesture0,clickGesture1,unbindWatch; (newval,oldval){ ){ if(clickGesture0){OffclickFn(clickGesture0);} if(clickGesture1){OffclickFn(clickGesture1);} }){ clickGesture0); if(clickGesture1){OffclickFn(clickGesture1);} }){ clickGesture1); } unbindWatch(); } console.log(clickGesture0); }); /*function AddclickFn(selector,idx){ return $ionicGesture.on('click',function(){ console.log(arguments); console.log(idx);//这样可以获取idx },angular.element(document.querySelector(selector))); };{idx:idx}); }; /* 按住alt点击$ionicGesture.off进去看源码是这样的 才知道ionic.wang这网站介绍gusture方法错了 off: function(gesture, eventType, cb) { return window.ionic.offGesture(gesture, eventType, cb); }*/ $scope.add=function(){ );} }; $scope.(){ $scope.data.pop(); }; function clickFn(ev,idx){ //这里默认的arguments是event 自定义的参数idx无法获取?? console.log(arguments); console.log(idx); }; function OffclickFn(clickGesture){ $ionicGesture.off(clickGesture,,clickFn); }; }]);
View Code再唠叨下:上面写法二我总感觉不好,希望有大牛能给点建议,给我留言或者qq联系,多谢!