html 传参阻止冒泡,angular阻止冒泡事件

news/2024/7/8 6:52:29

当元素多层嵌套的时候,每层都有点击事件,它就会发生冒泡,一层一层的触发,但有时候我们只想触发某一层,不想让其他层的事件触发,这就需要阻止冒泡事件了。

以angular项目为例,我们都知道angularJS中的执行方法都会自带一个$event,这个$event就是当前事件的对象,通过它来阻止冒泡。

在html中写一个ng-click事件:

注意给方法传递参数 $event.

在对应的controller中,添加阻止冒泡:

触发事件,传参数 $event

在事件中添加 $event.stopPropagation(); 阻止冒泡。

self.test = function($event){

$('#showMenus').css('display', 'block');

$event.stopPropagation();

}

更官方的示例:

查看angular的官方api文档,可以看出,angular对ng事件(例如:ng-click、ng-blur、ng-dblclick等等),添加了一个$event变量。

其实无论是js还是jq抑或是angular,阻止冒泡的关键都在于抓取event/$event

angular 中ngEventDirs.js:

var ngEventDirectives = {};

forEach(

'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),

function(name) {

var directiveName = directiveNormalize('ng-' + name);

ngEventDirectives[directiveName] = ['$parse', function($parse) {

return {

compile: function($element, attr) {

var fn = $parse(attr[directiveName]);

return function(scope, element, attr) {

element.on(lowercase(name), function(event) {

scope.$apply(function() {

fn(scope, {$event:event});

});

});

};

}

};

}];

}

);

在上边代码我们可以得到两个信息:

Angular支持的event:click 、dblclick 、mousedown 、mouseup、 mouseover 、mouseout 、mousemove、 mouseenter、 mouseleave、 keydown、 keyup、 keypress 、submit、 focus、 blur、 copy 、cut 、paste

Angular在执行事件函数时候传入了一个名叫 $event的常量,该常量即代表当前event对象,如果你在Angular之前引入了jQuery那么这就是jQuery的event.

那么我们可以利用event的stopPropagation来阻止事件的冒泡


http://www.niftyadmin.cn/n/1998586.html

相关文章

常见程序题——算法

1、求出一个字符在某一个字符串中出现的位置和次数。 /// <summary> /// /// </summary> /// <param name"str">被查找的字符串</param> /// <param name"strKey">查找的字符</param> p…

计算机office基础知识题库,计算机一级MS Office基础考试题库

信息安全的内涵在不断地延伸&#xff0c;从最初的信息保密性发展到信息的完整性、可用性、可控性和不可否认性。下面是小编整理的关于计算机一级MS Office基础考试题库&#xff0c;希望大家认真阅读!单选题1). 最早的应用领域是A.信息处理B.科学计算C.过程控制D.人工智能正确答…

安然事件

从去年底美国能源大公司安然公司申请破产保护以来&#xff0c;美国华尔街似乎就一直没有太平过。上市公司欺诈的阴影挥之不去&#xff0c;此起彼伏&#xff0c;直至6月25日&#xff0c;在美国长途电话市场位居第二的世界通信公司又爆出了38亿美元的财务欺诈案&#xff0c;紧接着…

《程序员代码面试指南》第三章 二叉树问题 遍历二叉树的神级方法 morris

题目 遍历二叉树的神级方法 morris java代码 package com.lizhouwei.chapter3;/*** Description:遍历二叉树的神级方法 morris* Author: lizhouwei* CreateDate: 2018/4/14 17:15* Modify by:* ModifyDate:*/ public class Chapter3_5 {//morris中序public void morrisInOrder(…

计算机基础知识2001年版本,《2001年计算机应用基础》.pdf

全国高等教育自学考试标准预测试卷2001 年计算机应用基础学苑出版社全国高等教育自学考试2001 年计算机应用基础试卷及答案(考试时间 分钟)150题 号 一 二 三 四 五 总 分题 分 40 10 30 9 11 核分人得 分 复查人第一部分 选择题40 1 40一、单项选择题(本大题共 小题&#xff0…

JavaScript and Ruby in ABAP

Netweaver里有个mini JavaScript engine CL_JAVA_SCRIPT, 对于Js code的编译和执行都是用system call完成。 只能当玩具用&#xff1a;report SJSEU 执行结果&#xff1a;120 在SAP C4C的UI Designer里&#xff0c;event handler里可以写Ruby Script, UI保存时Ruby Script会自动…

对银广厦事件的思考

对银广厦事件的思考     经过《财经》杂志的曝光&#xff0c;美丽的银广厦泡沫终于破灭了。一时之间&#xff0c;银广厦事件成为市场关注的焦点。有人在进一步揭露银广厦事件内幕的&#xff0c;有人在阐述银广厦事件对股市的影响&#xff0c;有人建议对银广厦事件严肃查处&…

实践所学计算机知识应用,大学计算机实践课总结报告

大学计算机实践课总结报告眨眼一个学期过了&#xff0c;在这一学期中学到了很多关于计算机的知识及应用&#xff0c;收获颇丰&#xff0c;虽然之前对于这些都有接触和了解&#xff0c;但通过学习才知道自己了解的还是太少了&#xff0c;只有通过学习才能知道自己的不足&#xf…