项目 上遇到  innHTML  放入 一大段的html 内容 中带有 click 事件 如onclick="callInMethod("http://www.crm.bmcc.com.cn/kb/cs/kb/knowledge/jsspan.html?methodName=openRelateDoc&docId=2015070102GJ225722&docName=扣费主动提醒和业务订购二次确认服务")" 这样的事件 ,由于要在指定的ng-controller 内获取 onclick  函数 内的 指定 id 值。所以不得不监听  获取 这个点击事件。

为了让我的控制器能够对文档层面上的鼠标事件有所反应,我必须创建一个自定义AngularJS指令,它将会把DOM节点和控制器的$scope方法“粘合”起来。在下面的例子中,我创建了“bnDocumentClick”属性指令:

  1. bn-docuemnt-click="handleClick($event)"

这个指令将会在当前控制器的$scope对象的上下文中处理这个给定的表达式。在下面的例子中,$event对象其实就是潜在的jQuery事件对象。

  1. mIndex.directive(
  2. "bnDocumentClick",
  3. function( $document, $parse ){
  4.  
  5. //将Angular的上下文链接到DOM事件
  6. var linkFunction = function( $scope, $element, $attributes ){
  7.  
  8. //获得表达式
  9. var scopeExpression = $attributes.bnDocumentClick;
  10.  
  11. //使用$parse来编译表达式
  12. var invoker = $parse( scopeExpression );
  13.  
  14. //绑定click事件
  15. $document.on(
  16. "click",
  17. function( event ){
  18.  
  19. //当点击事件被触发时,我们需要再次调用AngularJS的上下文。再次,我们使用$apply()来确保$digest()方法在幕后被调用
  20. $scope.$apply(
  21. function(){
  22.  
  23. //在scope中调用处理函数,将jQuery时间映射到$event对象上
  24. invoker(
  25. $scope,
  26. {
  27. $event: event
  28. }
  29. );
  30.  
  31. }
  32. );
  33.  
  34. }
  35. );
  36.  
  37. //当父控制器被从渲染文档中移除时监听"$destory"事件
  38.  
  39. };
  40.  
  41. //返回linking函数
  42. return( linkFunction );
  43.  
  44. }
  45. );

指定 范围的标签 加入

  1. <div id="createDiv" ng-controller="c_textHt"
  2. bn-document-click="handleClick( $event )"></div>
  1. controller中内容如下
  1. $scope.handleClick = function( event ){
  2. if(event.target.parentNode.parentNode.href=="javascript:"){
  3. console.log(event.target.parentNode.parentNode)
  4. var cc = event.target.parentNode.parentNode
  5. console.log(cc.getAttribute("onclick"))
  6. alert(cc.getAttribute("onclick"))
  7. var dd =cc.getAttribute("onclick").split("docId")[1].split("&")[0].split("=")[1]
  8. console.log(dd)
  9. }
  10.  
  11. };

angularjs 监听 文档click 事件的更多相关文章

  1. day56 文件 文档处理,事件

    前情回顾: 1. 前情回顾 0. 选择器补充 - 属性选择器 - $("[egon]") - $("[type='text']") - $("inpu ...

  2. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

  3. iOS:使用代理模式监听开关状态改变事件

    记一次解决跨控制器监听开关状态改变的尝试. 为了统一设置UITableViewCell里的内容,自定义了UITableViewCell类的一个基类,命名为SettingCell.SettingCell ...

  4. Android如何监听蓝牙耳机的按键事件(转)

    源: Android如何监听蓝牙耳机的按键事件 写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「 ...

  5. AngularJS监听路由变化

    使用AngularJS时,当路由发生改变时,我们需要做某些处理,此时可以监听路由事件,常用的是$routeStartChange, $routeChangeSuccess.完整例子如下: <!D ...

  6. 复选框 省市区 联动(监听input的change事件)

    需求:省市区三级包含复选框按钮以及文字描述.点击文字显示对应的下级地区,点击复选框选择对应的下级区域勾选. 分析:监听input的change事件当点击复选框省  选择对应的第一个市区,同时默认选中第 ...

  7. Android怎样监听蓝牙耳机的按键事件

    Android怎样监听蓝牙耳机的按键事件 写在前面: 直接想要代码非常easy,你直接把滚动栏拉到最底端就能够看到.假设想要十分地了解为什么,那就依照我规划的一步一步来理解.下面測试环境以手头上有的「 ...

  8. JS移动端如何监听软键盘回车事件

    移动端经常项目中会有搜索之类的功能,一般实现的是按搜索按钮进行搜索,如果要像PC端一样实现按回车键进行搜索该怎么实现呢? 方法很简单,就是在搜索框的input外面套一个form标签  注意点:form ...

  9. el-input监听不了回车事件

    vue使用element-ui的el-input监听不了回车事件,原因应该是element-ui自身封装了一层input标签之后,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-inp ...

随机推荐

  1. Python之进程 1 - 基本概念

    一 背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所 ...

  2. Django之CRM项目Day3-客户展示及分页

    1.展示客户 模板的查找顺序: ​ 先找全局的templates--> 按照app的注册顺序找templates中的文件 使用admin添加数据: 创建超级用户 python manage.py ...

  3. 【webpack】中clean-weabpack-plugin使用方法

    在webpack中打包的文件通常是通过hash生成的,如果文件改动,那么打包的文件就会越来越多,如果想清除之前的文件,可以使用clean-weabpack-plugin插件来处理   注意版本号:我使 ...

  4. MeEclipse搭建SSH框架之———大体框架

    必备:MyEclipse软件,SSH需要的jar包,数据库,连接数据库的驱动jar包 先搭建大体框架,再加别的东西,要不都不知道哪里错了 一.新建web项目 MyEclipse左边右键--->N ...

  5. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

    错误描述:当在ASP.NET应用程序中引用Microsoft Excel组件,并在程序中调用时,部署到服务器上经常会遇到以下的错误:检索 COM 类工厂中 CLSID 为{00024500-0000- ...

  6. codeforces706E

    好精妙的一道题啊 传送门:here 大致题意:有一个$ n*m$的矩阵,q次询问每次交换给定两个无交矩阵的对应元素,求操作后的最终矩阵? 数据范围:$ n,m<=1000, q<=1000 ...

  7. 前端下载excel打不开求助+解法

    解法: //axios   return request({ url: "/saleUnit/exportSaleUnit", headers: { "biz-sourc ...

  8. 反射中的一个问题点:利用Method执行main方法特殊的地方

    利用Method执行main方法 问题: 启动Java程序的main方法的参数是一个字符串数组,即public static void main(String[] args),通过反射方式来调用这个m ...

  9. 2017-2018-2 20165237 实验四《Android开发基础》实验报告

    2017-2018-2 20165237 实验四<Android开发基础>实验报告 实验报告表头: No.1 实验要求: Android程序设计-1 实验要求: 参考<Java和An ...

  10. ARMV7-M数据手册---Part B :System Level Architecture---B3 System Address Map

    1.前言 2.The system address map 3.System Control Space (SCS) 4.The system timer, SysTick 5. Nested Vec ...