常规javascript鼠标右键直接在标签上加contextmenu="alert('a')"即可,现在angular通过directive来定义一个右键指令。
app.directive('ngRightClick', function($parse) { return function(scope, element, attrs) { var fn = $parse(attrs.ngRightClick); element.bind('contextmenu', function(event) { scope.$apply(function() { event.preventDefault(); fn(scope, {$event:event}); }); }); }; });
$parse服务可以讲一个表达式转换为一个函数。这个函数可以被调用,其中的参数是一个上下文对象,通常来说是作用域。另外,通过$parse的表达式返回的这个函数有一个assign属性。这个assign属性也是一个函数,它可以用来在给定的上下文中改变这个表达式的值。
下面是一段简单的代码:
<div my-attr="obj.name" my-directive>testing</div>
app.directive('myDirective',function($log,$parse){ return function(scope,elem,attrs){ //解析"my-attr属性值到一个函数中" var model = $parse(attrs.myAttr); //model现在是一个函数,可以调用它来获取表达式的值 //下面这行代码将会输出作用域中obj.name的值 $log.log(model(scope)); elem.bind('click',function(){ //'model.assign'也是一个函数,它用来更新表达式的值 model.assign(scope,'New name'); scope.$apply(); }) } });
上面的例子可以充分体现我们为什么需要$parse服务。如果属性值是name,那么我们完全可以不用$parse,只用scope[attrs.myAttr]即可。但是在上面的例子中,方括号并不管用。
返回上一页
//返回上一页 window.history.back() .directive('backButton', ['$window', function($window) { return { restrict: 'A', link: function(scope, element, attrs) { element.bind('click', function() { $window.history.back(); }); } } }])
相关推荐
可以实现js的左键单击,双击,拖拽,右键单击,双击,拖拽,和中键的单击,双击和拖拽事件,以及滚轮事件,已经封装成jquery插件,调用方便,功能强大。
JavaScript+jQuery 网页特效...鼠标事件;1、鼠标事件;1、鼠标事件(案例);2、键盘事件;2、键盘事件(案例);3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止
自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl)
解决/阻止 div层内的div层点击事件冒泡触发的小方法 示例代码
jquery hover 冒泡事件制作心型图片墙鼠标悬浮图片 jquery hover 冒泡事件制作心型图片墙鼠标悬浮图片
jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡...
阻止滚动条事件mousewheel冒泡,当网页内部元素滚动条到顶或底时不触发浏览器窗口的滚动条事件。
冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python...
一种解决事件冒泡的方法,有较好的浏览器兼容性,具体思路参见文档: http://blog.csdn.net/ivyandrich/article/details/22041933
关于冒泡事件的demo,教你实现js的冒泡处理,适用于各种浏览器
3进一步改进的冒泡排序,如果在某次冒泡过程中,最后一次进行交换的位置为flag,则表示flag之后的序列已经有序,那么下一次冒泡就无需比较flag之后的序列,即只要比较到flag就可以结束此次冒泡过程。当flag=0时,...
本段代码演示了如何使用JavaScript取消HTML事件的冒泡,即当后代元素的事件被触发时,祖先元素的相同事件也会被触发。...关键词:事件冒泡、取消冒泡、单击事件。用途:学习如何使用JavaScript取消HTML事件的冒泡。
用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序
冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c ...
并不是所有的事件都有冒泡现象,比如如下几个:blur事件 ,focus事件, load事件 2、事件委托:事件捕获恰好与事件冒泡相反,它从顶层祖先元素开始,直到事件触发元素。 js事件捕获一般通过DOM2事件模型...
div 里面绑定div 2个DIV都绑定了 click事件,怎么点里面的div不会执行到外面DIV的事件,冒泡!这个案例 比较简单,仅供大家学习