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

如html

  1. <ul id="main-menu">
  2. <li class="">
  3. <a href="javascript:;">Menu1</a>
  4. <ul class="sub-menu">
  5. <li ><a href="javascript:;">--1</a></li>
  6. <li ><a href="javascript:;">--2</a></li>
  7. </ul>
  8. </li>
  9. <li class="">
  10. <a href="javascript:;">Menu2</a>
  11. <ul class="sub-menu">
  12. <li ><a href="javascript:;">--1</a></li>
  13. <li ><a href="javascript:;">--2</a></li>
  14. </ul>
  15. </li>
  16. </ul>

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

  1. $(function(){
  2. $("#main-menu li a").click(function(e){
  3. if ($(this).next().hasClass('sub-menu') === false) {
  4. return;
  5. }
  6. console.log("click");
  7. });
  8. });

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

html之后是

  1. <ul id="main-menu">
  2. <li class="">
  3. <a href="javascript:;" toggle-main-menu>Menu1</a>
  4. <ul class="sub-menu">
  5. <li ><a href="javascript:;">--1</a></li>
  6. <li ><a href="javascript:;">--2</a></li>
  7. </ul>
  8. </li>
  9. <li class="">
  10. <a href="javascript:;" toggle-main-menu>Menu2</a>
  11. <ul class="sub-menu">
  12. <li ><a href="javascript:;">--1</a></li>
  13. <li ><a href="javascript:;">--2</a></li>
  14. </ul>
  15. </li>
  16. </ul>

javascript:

  1. .directive("toggleMainMenu", function() {
  2. return {
  3. restrict: "A",
  4. link: function(scope, elem, attrs) {
  5. $(elem).click(function() {
  6. if($(this).next().hasClass('sub-menu') === false) {
  7. return;
  8. }
  9. console.log("click");
  10. });
  11. }
  12. }
  13. });

原来指令是这样使用的。

Angularjs 1 中使用指令绑定点击事件的更多相关文章

  1. Angularjs 中使用指令绑定点击事件

    项目中,模板中的菜单是jQuery控制的,在Angularjs中就运行不到了,因为菜单项是ng-repeat之后的. 如html <ul id="main-menu"> ...

  2. (转载)js(jquery)的on绑定点击事件执行两次的解决办法

    js(jquery)的on绑定点击事件执行两次的解决办法—不是事件绑定而是事件冒泡 遇到的问题:jquery中用.on()给页面中新加的元素添加点击事件时,点击事件源,绑定的事件执行两次,这里的ale ...

  3. 通过jQuery给<li>绑定点击事件

    背景:有个需求需要js中实现li标签的事件绑定,li通过在ajax请求中动态添加,按照常理,使用jQuery,可以使用以下方法绑定点击事件: $(function(){  commonAjaxCall ...

  4. JQuery 动态加载 HTML 元素时绑定点击事件无效问题

    问题描述 假设项目中有一个列表页面,如下: 当点击列表一行数据可以显示详情页面,而详情页面的数据是根据当前行的数据作为参数,通过 ajax 请求到后台返回的数据,再根据返回的结果动态生成 html 页 ...

  5. iOS开发小技巧 - label中的文字添加点击事件

    Label中的文字添加点击事件 GitHub地址:https://github.com/lyb5834/YBAttributeTextTapAction 以前老师讲过类似的功能,自己懒得回头看了,找了 ...

  6. iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath(汇总)

    iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath 首先分析有几种原因,以及相应的解决方法 1.UITableViewCell的userInterac ...

  7. ListView中响应item的点击事件并且刷新界面

    ---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...

  8. jQuery实现当按下回车键时绑定点击事件

    jQuery实现当按下回车键时绑定点击事件 <script> $(function(){ $(document).keydown(function(event){ if(event.key ...

  9. a标签绑定点击事件失败

    如图 然后对a标签绑定点击事件  无效 换成span标签可以

随机推荐

  1. USACO18FEB Platinum

    SlingShot 求数轴上从x到y的最短路( 边长为1),有若干个从xi到yi长度为ti的传送门,每次只能选择其中一个使用. 即求min(|x-y|,min{|a-x|+|b-y|+c}),拆开绝对 ...

  2. Python 读取本地*.txt文件 替换 内容 并保存

    # r    以只读的方式打开文件,文件的描述符放在文件的开头# w    打开一个文件只用于写入,如果该文件已经存在会覆盖,如果不存在则创建新文件 #路径path = r"D:\pytho ...

  3. Oracle大数据SQL语句优化

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  4. 【转载】浅谈Linux内存管理机制

    经常遇到一些刚接触Linux的新手会问内存占用怎么那么多? 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,在 ...

  5. 「STL」bitset正传

    前言 之前一些需要转二进制来解决的题目我看到很多大佬用了bitset. 然而我并不会这东西.看上去很高级的样子…… 改题改累了来学习一下233. 正文 一.bitset的构造 bitset有三种构造方 ...

  6. 用VC++MFC做文本编辑器(单文档模式)

    用VC++MFC做文本编辑器(单文档模式) 原来做过一个用对话框实现的文本编辑器,其实用MFC模板里面的单文档模板也可以做,甚至更加方便,适合入门级的爱好者试试,现介绍方法如下: < xmlna ...

  7. day22_1-课前上节复习+os模块

    # ********************day22_1-课前上节复习+os模块 *******************# ********************day22_1-课前上节复习+os ...

  8. Python collection模块与深浅拷贝

    collection模块是对Python的通用内置容器:字典.列表.元组和集合的扩展,它包含一些专业的容器数据类型: Counter(计数器):dict子类,用于计算可哈希性对象的个数. Ordere ...

  9. HttpClientUitl工具类

    public class HttpClient { private CloseableHttpClient httpClient; public HttpClient() { this.httpCli ...

  10. 2019-2-17-如何在-Windows-10-中移除-Internet-Explorer-浏览器

    title author date CreateTime categories 如何在 Windows 10 中移除 Internet Explorer 浏览器 lindexi 2019-02-17 ...