关于事件代理的问题
来源:2-3 为搜索框添加功能--事件代理和显示隐藏下拉层
weixin_慕仰4083625
2019-11-27 19:13:59
$layer.on('click', '.search-layer-item', function() {//利用冒泡机制事件代理,就不用给所有.search-layer-item绑定事件,占用资源
//focus,blur不能事件冒泡,无法事件代理
$input.val(removeHtmlTags($(this).html()));
$form.submit();
})请问老师事件代理$layer.on('click', '.search-layer-item', function() {这种写法是固定的吗
还有为什么用事件代理以后这段代码就可以写在done外面了,.search-layer-item的内容不是还在一直变化吗?
1回答
好帮手慕夭夭
2019-11-28
同学你好,问题解答如下:
1.在jQuery中这个是固定的写法。原生js也可以实现,可以了解一下。如下给父元素绑定事件,当点击子元素时,通过e.target获取当前点击的元素。

2. 事件代理,本质上绑定事件的是父节点,子节点存不存在都行。所以代码可以放在done外面。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题