• 当前位置:首页 > 日记 > 正文

    Angularjs中使用指令绑定点击事件的方法

    Angularjs中使用指令绑定点击事件的方法

    项目中,模板中的菜单是jQuery控制的,在Angularjs中就运行不到了,因为菜单项是ng-repeat之后的。

    如html

    <ul id="main-menu"> <li class="">  <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Menu1</a>  <ul class="sub-menu">    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--1</a></li>    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--2</a></li>  </ul> </li>  <li class="">  <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Menu2</a>  <ul class="sub-menu">    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--1</a></li>    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--2</a></li>  </ul> </li></ul>

    Jquery给第一级a链接绑定事件代码像:

    $(function(){ $("#main-menu li a").click(function(e){   if ($(this).next().hasClass('sub-menu') === false) {        return;     }     console.log("click"); });});

    因为我之前看过文档说,Angularjs的Controller不处理Dom的操作,所以一直在找方法怎么处理和jQuery 一样绑定a的点击事件,在看了jQuery not working with ng-repeat results之后,原来可以将所有链接的单击事件,放在一个指令中。如果在Controller中绑定了ng-click,并操作了Dom元素,就不太规范了,使用指令会好一些。

    html

    <ul id="main-menu"> <li class="">  <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" toggle-main-menu>Menu1</a>  <ul class="sub-menu">    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--1</a></li>    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--2</a></li>  </ul> </li>  <li class="">  <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" toggle-main-menu>Menu2</a>  <ul class="sub-menu">    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--1</a></li>    <li ><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--2</a></li>  </ul> </li></ul>

    javascript:

    .directive("toggleMainMenu", function() {  return {    restrict: "A",    link: function(scope, elem, attrs) {      $(elem).click(function() {        if($(this).next().hasClass('sub-menu') === false) {          return;        }      console.log("click");      });    }  }});

    原来指令是这样使用的。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

    相关文章

    javascript中apply/call和bind的使

    javascript中apply/call和bind的使

    电脑软件,apply,javascript,bind,call,fun.apply(context,[argsArray])立即调用fun,同时将fun函数原来的this指向传入的新context对象,实现同一个方法在不同对象上重复使用。context:传入的对象,替代fun函数原来的this;argsArray:一个数组或者…

    ppt2013导出视频失败怎么处理

    ppt2013导出视频失败怎么处理

    步骤,视频,怎么处理,电脑软件,  ppt2013增加了导出视频功能,使ppt更加的完善。他如何到处成为视频格式呢?其实方法不难,现在小编马上给大家演示一下PPT2013导出视频的步骤,希望看完本教程的朋友都能学会并运用起来。PPT2013导出视频的步骤首…

    word文档中文件怎么插入gif动图

    word文档中文件怎么插入gif动图

    文件,文档,电脑软件,图文,word,  如果word文件中想要插入动图,并让动图动起来,那么就需要了解一下制作插入动图的操作步骤了。以下是小编为您带来的关于word文档中文件插入gif动图,希望对您有所帮助。word文档中文件插入gif动图1、首先启动w…

    正则表达式i修饰符 | 大小写不敏感

    正则表达式i修饰符 | 大小写不敏感

    修饰符,大小写不敏感,正则表达式,电脑软件,正则表达式i修饰符:i修饰符用来规定正则表达式的匹配是大小写不敏感的。语法结构:构造函数方式:new RegExp("regexp","i")对象直接量方式:/regexp/i浏览器支持:IE浏览器支持此元字符。火狐浏…

    ppt2010怎么删除的背景ppt2010删除

    ppt2010怎么删除的背景ppt2010删除

    删除,方法,步骤,背景,图片,  在制作幻灯片的时候有些图片我们并不想要背景,那如何删除图片的背景呢?具体怎么做下面小编来告诉你ppt2010怎么删除图片的背景。希望对你有帮助!ppt2010删除图片的背景的步骤打开ppt目录栏中的插入&mdash;&mdas…

    详解vue渲染从后台获取的json数据

    详解vue渲染从后台获取的json数据

    数据,后台,详解,电脑软件,vue,?公司项目原来用的框架扩展性太差,准备更新前台页面然后用vue渲染dom然后我写了一个demo$(document).ready(function(){ $.ajax({ type:"post", url:"", async:true, data:{ }, da…

    JavaScript代码执行的先后顺序问题

    JavaScript代码执行的先后顺序问题

    执行,顺序,代码,电脑软件,JavaScript,一、js--->单线程   严格意义上来说,javascript没有多线程的概念,所有的程序都是单线程依次执行的。1、什么是单线程?通俗点说,就是代码在执行过程中,另一段代码想要执行就必须等当前代码执行完成后才可以…

    在word中怎样输入化学方程式 word

    在word中怎样输入化学方程式 word

    输入,方法,步骤,化学方程式,电脑软件,  化学方程式的书写不管是学生还是老师都是一个绕不开的工作。化学方程式中有很多的上下标格式、括号,这给我们老师录入化学方程式到文档中带来了不小的困难,如何快速的录入化学方程式是我们亟需解决的…

    angularjs实现上拉加载和下拉刷新

    angularjs实现上拉加载和下拉刷新

    上拉加载,刷新数据,功能,电脑软件,angularjs,虽说AngularJS 1.x版本中对于上拉加载,下拉刷新数据功能都有做些封装,但还是有些人不清楚。其实我一开始也是不懂的,so.现在把搞懂的记录下免得少走弯路。 now,begin:先说下拉刷新吧,原理就是每次下…

    js实现楼层导航功能

    js实现楼层导航功能

    导航,楼层,功能,电脑软件,js,图如下所示:1.点击跳转到相应区域:页面scroll掉的距离 = 目标板块在文档中的垂直坐标 - 起始板块(目标位置)到视图顶部的距离;document.body.scrollTop = scrollLength;   document.documentElement.scrollTop = s…

    ps怎样把人物制作成漫天飞舞的雪景

    ps怎样把人物制作成漫天飞舞的雪景

    雪景,效果,人物,电脑软件,ps,ps怎样把图片制作成漫天飞舞的雪景效果?运用PHOTOSHOP软件,可以很简单的制作大家想要的照片,下面和小编一起来看看具体步骤吧。最终效果图练习素材:具体步骤:1、将RAW格式的原文件在PS里打开,参数调整如下。2、打开…

    excel2010开启夜间模式的方法步骤

    excel2010开启夜间模式的方法步骤

    方法,夜间模式,步骤,分析工具,加载,  夜间如果输入表格,太亮的话,对眼睛不好,开启夜间模式能够相对应的保护我们的眼睛。下面小编教你excel2010怎么开启夜间模式,希望对你有帮助!excel2010开启夜间模式的方法首先,我们打开excel表格,打开以后,我…