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

发布时间 - 2026-01-11 00:27:16    点击率:

项目中,模板中的菜单是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");
      });
    }
  }
});

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


# angularjs  # 指令绑定  # 绑定事件  # 事件指令  # Angularjs 事件指令详细整理  # AngularJS实现自定义指令与控制器数据交互的方法示例  # angularjs之$timeout指令详解  # 深究AngularJS如何获取input的焦点(自定义指令)  # Angularjs中使用轮播图指令swiper  # angularjs 指令实现自定义滚动条效果  # 绑定  # 放在  # 看了  # 不太  # 是这样  # 作了  # 定了  # 中就  # 会好  # 单击  # 大家多多  # 单是  # 怎么处理  # 菜单项  # 文档  # 因为我  # 中的菜  # lt  # ul  # xhtml 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何注册花生壳免费域名并搭建个人网站?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  JavaScript中的标签模板是什么_它如何扩展字符串功能  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  制作公司内部网站有哪些,内网如何建网站?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  使用spring连接及操作mongodb3.0实例  如何快速搭建高效WAP手机网站吸引移动用户?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  利用python获取某年中每个月的第一天和最后一天  如何确认建站备案号应放置的具体位置?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何获取PHP WAP自助建站系统源码?  青岛网站建设如何选择本地服务器?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Android中AutoCompleteTextView自动提示  js实现点击每个li节点,都弹出其文本值及修改  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  如何在Windows服务器上快速搭建网站?  如何确保西部建站助手FTP传输的安全性?  如何用免费手机建站系统零基础打造专业网站?  如何用西部建站助手快速创建专业网站?  JS实现鼠标移上去显示图片或微信二维码  JavaScript数据类型有哪些_如何准确判断一个变量的类型  高端企业智能建站程序:SEO优化与响应式模板定制开发  Python文件流缓冲机制_IO性能解析【教程】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  jQuery validate插件功能与用法详解  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何与Pusher实现实时通信?(WebSocket示例)  如何构建满足综合性能需求的优质建站方案?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  免费网站制作appp,免费制作app哪个平台好?  Python文件异常处理策略_健壮性说明【指导】  怎么用AI帮你设计一套个性化的手机App图标?  高防服务器:AI智能防御DDoS攻击与数据安全保障  魔方云NAT建站如何实现端口转发?  手机软键盘弹出时影响布局的解决方法  Python高阶函数应用_函数作为参数说明【指导】  Laravel如何处理和验证JSON类型的数据库字段  浅谈javascript alert和confirm的美化  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Swift中循环语句中的转移语句 break 和 continue  如何在IIS中配置站点IP、端口及主机头?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何快速搭建高效服务器建站系统?  如何在阿里云通过域名搭建网站?