off-click.js 616 B

1
  1. "use strict";app.directive("offClick",["$document","$timeout",function(c,f){function n(c,f){if(!c||!f)return!1;for(var n=angular.element(document.querySelectorAll(f)),t=n.length,i=0;i<t;++i)if(n[i].contains(c))return!0;return!1}return{restrict:"A",scope:{offClick:"&",offClickIf:"&"},link:function(t,i,o){function e(c){if(0!=c.pageX||0!=c.pageY){var f=c.target||c.srcElement;i[0].contains(f)||n(f,o.offClickFilter)||t.$apply(t.offClick())}}o.offClickIf?t.$watch(t.offClickIf,function(n,t){n&&!t?f(function(){c.on("click",e)}):n||c.off("click",e)}):c.on("click",e),t.$on("$destroy",function(){c.off("click",e)})}}}]);