没怎么理懂,div里要是有好几个input呢?冒泡不是由里向外么?
focusin()在元素包含的元素中产生,怎么产生的?通过点击元素中的元素?然后触发了啥?
我印象中的冒泡是当div与其中的元素都绑定了click事件时,点击里面的元素会向外冒泡,触发div的点击事件
focusin()在元素包含的元素中产生,怎么产生的?通过点击元素中的元素?然后触发了啥?
我印象中的冒泡是当div与其中的元素都绑定了click事件时,点击里面的元素会向外冒泡,触发div的点击事件
2016-07-14
blur、focus事件在元素本身产生,不支持冒泡;focusin、focusout事件支持冒泡。并要注意不是所有元素都能够接收焦点的.能够响应用户操作的元素才有焦点
所以
$(".aaron").focus(function() {
$(this).css('border', '2px solid red')
})
这里父级div虽然绑定了focus事件,但是由于是子元素input获得了焦点,也就是input触发了focus事件(当然同时也触发了focusin事件)但是input却没有绑定事件处理函数,所以input不会有什么反应,再因为focus不支持冒泡,所以父级div的focus事件并不会被触发,综上所述就没有任何反应了
而$(".aaron1").focusin(function() {
$(this).find('input').val('冒泡捕获了focusin事件')
$(this).css('border', '2px solid red')
})
这里父级div绑定了focusin事件,子元素input获得了焦点后触发了focusin事件(当然同时也触发了focus事件),又因为支持冒泡,所以父级div的focusin事件就被触发了,就出现反应了
举报