on 和 event的问题

来源:7-2 揭秘案例bug值解决第三个bug

WittChen

2020-05-12 17:27:28

老师您好:

问题一、如果采用.on("click", "a", function(){})这样写是可以捕捉到动态生成的a标签的,但是还有种写法

.on({})这里面穿的是一个对象,这样怎么捕捉动态生成的a标签呢,直接a.on({})吗,但是感觉也不对。

问题二、.on("click", "a",data, function(){}),这里还有个data参数,我记得不错老师直接说是event,把event直接放在括号中,但是根据我之前学习javascript的理解,event可以省略不需要写,那么这个data就不应是event,可以使其他的值,我说的对吗?

问题三、这个event在原生的JavaScript里应该是window下的一个对象,所以是全局的变量,因此可以直接访问,我要问的是在jQuery中event和window下的event一样吗,不一样的话应该也是这个jQuery 的一个属性,应该也能直接调用。


写回答

2回答

好帮手慕星星

2020-05-12

同学你好,问题解答如下:

1、用对象的形式绑定事件,是没有办法动态捕获元素的

2、data是额外传入的参数,可以通过event.data获取到。例如

http://img.mukewang.com/climg/5eba889709e3b93c06470236.jpg

3、jquery中的event也是全局的,可以不写参数直接使用。但是如果传入额外参数data的话,event是需要写的,否则获取不到为undefined。例如

http://img.mukewang.com/climg/5eba893d0962069a06310224.jpghttp://img.mukewang.com/climg/5eba894409eb747e09240074.jpg

4、$(document).on("click", "a", function(){})这种写法是事件委托,是在document上绑定的,但是是通过a触发的。例如,p元素中有a,在p上绑定

http://img.mukewang.com/climg/5eba8b99099479ba04880328.jpg

点击a触发结果

http://img.mukewang.com/climg/5eba8b9f095520ec02130063.jpg

可以看到先执行a的点击事件,然后冒泡到p元素上,然后触发p的点击事件。

祝学习愉快!

0
hittChen
h 谢谢老师!
h020-05-12
共1条回复

WittChen

提问者

2020-05-12

再补充一个问题:

问题四、$(document).on("click", "a", function(){}),像这种绑定事件,会一起把document也绑定了吗?

0

0 学习 · 14456 问题

查看课程