`
hudeyong926
  • 浏览: 2035207 次
  • 来自: 武汉
社区版块
存档分类
最新评论

AngularJS实现鼠标右键事件 事件冒泡

 
阅读更多

常规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();
      });
    }
  }
}])
 
 
 
分享到:
评论

相关推荐

    基于vue的鼠标右键菜单事件本组件提供右键菜单的显示和隐藏

    总结来说,"基于vue的鼠标右键菜单事件"组件是一个实现了鼠标右键触发菜单显示和隐藏功能的Vue组件。它展示了Vue的组件化开发思想,以及如何处理事件、自定义内容和样式。对于熟悉Vue.js的开发者,这个组件提供了...

    js屏蔽鼠标右键js屏蔽鼠标右键js屏蔽鼠标右键

    本篇文章将详细解析一种通过JavaScript实现禁用鼠标右键的方法,并深入探讨其背后的原理。 #### 二、实现原理 在HTML文档中,当用户点击鼠标右键时,默认会触发浏览器的上下文菜单(即右键菜单)。而通过...

    javascript实现在某个元素上阻挡鼠标右键大事的方法和实例_.docx

    以下是对如何实现在特定元素上阻挡鼠标右键事件的详细说明: 首先,了解事件模型。在Web开发中,有捕获(capture)阶段、目标(target)阶段和冒泡(bubbling)阶段。当鼠标右键被点击时,事件会从最外层的DOM节点...

    jquery鼠标右键菜单(2级菜单)

    在网页开发中,jQuery是一个非常流行的...总的来说,利用jQuery实现鼠标右键菜单是一个结合事件处理、DOM操作和CSS布局的过程。通过这个实例,我们可以更好地理解jQuery的强大功能,并将其应用到实际的网页项目中。

    [转] 在发布一个鼠标右键的公用类

    1. **鼠标事件**:首先,文章可能会解释鼠标事件的基本概念,如`MouseEvent.RIGHT_CLICK`,这是在AS3(ActionScript 3)中用于识别右键点击的事件类型。 2. **事件监听器**:为了处理鼠标右键点击,需要添加事件...

    jQuery鼠标右键点击显示菜单代码

    标签“jQuery 右键”提示我们关注的重点是使用jQuery处理鼠标右键点击事件,以及构建和显示自定义的上下文菜单。 在提供的压缩包文件“texiao5612_1560680877”中,可能包含了实现这个功能的具体代码示例或相关资源...

    jquery鼠标右键菜单多级导航代码

    本主题聚焦于使用jQuery实现鼠标右键菜单的多级导航功能,这是一个常见的用户界面需求,尤其在网页应用中。下面将详细探讨如何通过jQuery实现这一功能。 首先,理解多级导航的基本概念。多级导航菜单通常用于组织...

    jQuery鼠标右键弹出菜单选项.zip

    在“jQuery鼠标右键弹出菜单选项”这个项目中,我们聚焦于利用jQuery来实现鼠标右键点击时显示一个自定义的菜单。这个功能常见于许多网站,提供用户友好的交互体验。 首先,我们需要理解HTML5的基础结构。HTML5是...

    基于jquery实现的鼠标左中右键单双击及拖拽和滚轮事件插件原型

    本篇文章将深入探讨如何基于jQuery实现一个功能丰富的鼠标事件插件,包括左键、中键、右键的单击、双击、拖拽事件,以及滚轮事件。 首先,我们来看标题提及的"基于jquery实现的鼠标左中右键单双击及拖拽和滚轮事件...

    阻止滚动条事件冒泡

    要实现这个功能,我们需要理解JavaScript事件冒泡的概念。在DOM中,事件会从最深的节点开始向上层节点传播,直到到达文档的根节点,这个过程就称为事件冒泡。阻止事件冒泡可以避免一个事件被多次处理,提高性能,...

    【Jquery经典特效10】jQuery鼠标右键点击菜单代码

    总结一下,通过使用jQuery的`contextmenu`事件和CSS定位,我们可以创建自定义的鼠标右键菜单。结合HTML结构和jQuery的动画效果,我们可以实现一个既实用又美观的交互体验。记得在实际应用中,根据需求调整菜单项和...

    鼠标键盘事件及事件冒泡.pptx

    JavaScript+jQuery 网页特效...鼠标事件;1、鼠标事件;1、鼠标事件(案例);2、键盘事件;2、键盘事件(案例);3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止

    JavaScript模拟鼠标右键菜单效果_.docx

    在本文中,我们将探讨如何使用JavaScript来模拟鼠标右键菜单的效果,这对于提升用户体验和增强网页功能具有重要意义。 首先,为了实现这个效果,我们需要创建一个HTML结构,包括一个隐藏的`&lt;ul&gt;`元素作为我们的右键...

    利用事件冒泡(Event Bubbling )获取鼠标下的元素属性

    利用事件冒泡获取鼠标下的元素属性,我们可以实现以下功能: 1. **事件委托**:通过在父元素上设置事件监听器,可以捕获到子元素的事件,这样可以减少内存占用,因为只需要为父元素绑定一次事件处理函数,而不是每...

    自定义控件(冒泡事件)源码(WebControl)

    自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl)

    SilverLight4实现右键菜单效果

    Silverlight中的鼠标事件处理是通过添加事件监听器来实现的。对于右键点击,我们需要监听`MouseRightButtonDown`事件。当用户在界面上右键点击时,这个事件会被触发。在事件处理程序中,我们可以阻止默认的浏览器...

    javascript阻止事件冒泡的一种方法

    `index.html`通常是网页的结构,而`min.js`可能包含了压缩过的JavaScript代码,用于演示阻止事件冒泡的实现。通过查看这两个文件,我们可以更深入地理解阻止事件冒泡的实践应用。 总结一下,阻止事件冒泡是...

    解决点击事件冒泡

    解决/阻止 div层内的div层点击事件冒泡触发的小方法 示例代码

    jquery hover 冒泡事件制作心型图片墙鼠标悬浮图片

    在本文中,我们将深入探讨如何使用jQuery的hover事件来创建一个独特的心形图片墙,当鼠标悬浮在图片上时,会产生动态效果。首先,我们需要理解jQuery库的基本概念以及hover事件的工作原理。 jQuery是一个广泛使用的...

    javascript触发模拟鼠标点击事件

    本文详细介绍了如何使用JavaScript来触发模拟的鼠标点击事件,并提供了IE浏览器和其他现代浏览器(例如Chrome、Firefox)中实现的示例代码。 首先,要理解事件触发器的概念。事件触发器是一种机制,它使得开发者...

Global site tag (gtag.js) - Google Analytics