请帮忙解释一段代码(js阻止冒泡传递)

这段代码有点看不懂,主要是画线的三个地方
第一个,section.length指的是多少?是4吗?是点击我!的长度吗?
第二个,函数传入的event参数,应该就是onclick吧?如果这括号里不写event,写空或者随便写个字符(例如e)可以吗?
第三个,this.classname指的是innermost,event.target.classname指的是regular吗?
还有一个疑问,这段代码应该是this.classname转换成了regular,然后stop了,阻止了冒泡传递,但怎么转换成regular的,这个过程有点不懂啊
57e80a16000146e005760432.jpg

undertale
浏览 1796回答 7
7回答

人生还有多少个二十年

解答1:答案为3(你脚本里的第一句是将所有section标签节点获取并保存在变量sections中,代码中出现了三个标签,所有sections的length(长度)应该是3)解答2:不是onclick,不能为空,可以用其他标识符代替,如e,但标识符不能是随便取的。(当你点击了section标签所有的区域时,会触发onclick事件,此时事件的处理函数会接收到一个参数,即事件对象,由于在函数中你要用到该对象,所以你要给定一个参数去接收它,该参数可以命名为event或者e,或者用其它可读性较强的标识符)解答3:this.classname是变化的(依次为"innermost","regular"),event.target.classname是唯一的("innermost")。(首先,当你点击了“点击我!”的位置时,触发绑定在类名为innermost的section标签的onclick事件,然后开始冒泡,正常的话会依次触发regular,outermost上的事件,而你在它冒泡到regular时,就阻止了它继续冒泡,因而无法触发outermost上的的事件,)如果我说了这么多,你还不明白,你也不用灰心,多看书,多看视频,慢慢就会懂了。给你推荐一下视频:http://www.imooc.com/learn/138

微积分2016

看书《JavaScript高级程序设计》第三版

qq_安逸_4

事件冒泡:是触发当前事件,会使得其外层事件被触发,知道冒泡到document,。本例中如果regular类标签有个点击事件弹出“regular”,当innermost里的事件被触发后,会使得reguler里的点击事件触发,从而导致弹出“regular”在本例中由于获取了所有<section>标签,赋值给数组sections,所以遍历该数组,即可获取className为regular的节点。

vone

第三 事件函数中的this代表的是当前冒泡到的对象 event.target指的是最初触发该事件的对象

vone

第二事件函数传入的参数是当前的事件对象,里边储存的是事件的信息 比如按下的键什么的  名字可以随便输

vone

第一 length的长度应该是3 是所有匹配标签的长度
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript