Angularjs 1 中使用指令绑定点击事件
项目中,模板中的菜单是jQuery控制的,在Angularjs中就运行不到了,因为菜单项是ng-repeat之后的。
如html
<ul id="main-menu">
  <li class="">
    <a href="javascript:;">Menu1</a>
    <ul class="sub-menu">
       <li ><a href="javascript:;">--1</a></li>
        <li ><a href="javascript:;">--2</a></li>
    </ul>
  </li>
    <li class="">
    <a href="javascript:;">Menu2</a>
    <ul class="sub-menu">
        <li ><a href="javascript:;">--1</a></li>
        <li ><a href="javascript:;">--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:;" toggle-main-menu>Menu1</a>
    <ul class="sub-menu">
       <li ><a href="javascript:;">--1</a></li>
        <li ><a href="javascript:;">--2</a></li>
    </ul>
  </li>
    <li class="">
    <a href="javascript:;" toggle-main-menu>Menu2</a>
    <ul class="sub-menu">
        <li ><a href="javascript:;">--1</a></li>
        <li ><a href="javascript:;">--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");
            });
        }
    }
});
原来指令是这样使用的。
Angularjs 1 中使用指令绑定点击事件的更多相关文章
- Angularjs 中使用指令绑定点击事件
		
项目中,模板中的菜单是jQuery控制的,在Angularjs中就运行不到了,因为菜单项是ng-repeat之后的. 如html <ul id="main-menu"> ...
 - (转载)js(jquery)的on绑定点击事件执行两次的解决办法
		
js(jquery)的on绑定点击事件执行两次的解决办法—不是事件绑定而是事件冒泡 遇到的问题:jquery中用.on()给页面中新加的元素添加点击事件时,点击事件源,绑定的事件执行两次,这里的ale ...
 - 通过jQuery给<li>绑定点击事件
		
背景:有个需求需要js中实现li标签的事件绑定,li通过在ajax请求中动态添加,按照常理,使用jQuery,可以使用以下方法绑定点击事件: $(function(){ commonAjaxCall ...
 - JQuery 动态加载 HTML 元素时绑定点击事件无效问题
		
问题描述 假设项目中有一个列表页面,如下: 当点击列表一行数据可以显示详情页面,而详情页面的数据是根据当前行的数据作为参数,通过 ajax 请求到后台返回的数据,再根据返回的结果动态生成 html 页 ...
 - iOS开发小技巧 - label中的文字添加点击事件
		
Label中的文字添加点击事件 GitHub地址:https://github.com/lyb5834/YBAttributeTextTapAction 以前老师讲过类似的功能,自己懒得回头看了,找了 ...
 - iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath(汇总)
		
iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath 首先分析有几种原因,以及相应的解决方法 1.UITableViewCell的userInterac ...
 - ListView中响应item的点击事件并且刷新界面
		
---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...
 - jQuery实现当按下回车键时绑定点击事件
		
jQuery实现当按下回车键时绑定点击事件 <script> $(function(){ $(document).keydown(function(event){ if(event.key ...
 - a标签绑定点击事件失败
		
如图 然后对a标签绑定点击事件 无效 换成span标签可以
 
随机推荐
- mysql查询语句对于为null和为空字符串给出特定值处理
			
SELECT if(IFNULL(filedName,"指定字符串")="","指定字符串",filedName) '重命名的字符名' FR ...
 - 2816: [ZJOI2012]网络
			
传送们 把一个点拆成c个即可 浪费时间的水题... //Achen #include<algorithm> #include<iostream> #include<cst ...
 - golang中time包的使用
			
一.代码 package main; import ( "time" "fmt" ) func main() { //time.Time代表一个纳秒精度的时间点 ...
 - UNIT对话系统(杂记)
			
单轮对话指标: 召回率=机器人能回答的问题数/问题总数 准确率=机器人正确回答的问题数/问题总数 问题解决率=机器成功解决的问题数/问题总数 多轮对话指标: 任务完成率=成功结束的多轮会话数/多轮会话 ...
 - uoj#311 【UNR #2】积劳成疾
			
题目 考虑直接顺着从\(1\)填数填到\(n\)发现这是在胡扯 所以考虑一些奇诡的东西,譬如最后的答案长什么样子 显然某一种方案的贡献是一个\(\prod_{i=1}^nw_i^{t_i}\)状物,\ ...
 - NEO4J全文检索架构
			
NEO4J全文检索架构 一.有大量存量数据(亿级以上)(并长期有增量数据进入) 二.无大量存量数据或者少量存量数据(或全部为增量数据) 三.架构方案选择优先级 以下方案,是根据实践总结的基于NEO4J ...
 - Nginx 教程 2:性能
			
为了获得更好的学习效果,我们建议你在本机安装 Nginx 并且尝试进行实践. tcp_nodelay, tcp_nopush 和 sendfile tcp_nodelay 在 TCP 发展早期,工程师 ...
 - java_Map集合
			
import java.util.HashMap; public class MapTest { /** * 1.Map集合是双列几个,一个元素包含两个值(key,value) * 2.Map集合中的 ...
 - 《代码整洁之道》ch5~ch9读书笔记 PB16110698(~3.15) 第二周
			
<代码整洁之道>ch5~ch9读书笔记 本周我阅读了本书的第5~9章节,进一步了解整洁代码需要注意的几个方面:格式.对象与数据结构.错误处理.边界测试.单元测试和类的规范.以下我将分别记录 ...
 - 基于windows消息的响应USB插入或取出
			
导语:当有设备进入windows时,系统会向所有的应用层发送WM_DEVICECHANGE消息.进一步根据相应的事件判断设备. LRESULT CALLBACK WndProc(HWND hWnd, ...