沒怎么理懂,div里要是有好幾個input呢?冒泡不是由里向外么?
focusin()在元素包含的元素中產生,怎么產生的?通過點擊元素中的元素?然后觸發了啥?
我印象中的冒泡是當div與其中的元素都綁定了click事件時,點擊里面的元素會向外冒泡,觸發div的點擊事件
focusin()在元素包含的元素中產生,怎么產生的?通過點擊元素中的元素?然后觸發了啥?
我印象中的冒泡是當div與其中的元素都綁定了click事件時,點擊里面的元素會向外冒泡,觸發div的點擊事件
2016-07-14
舉報
2016-07-27
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事件就被觸發了,就出現反應了
2016-07-23
和click是同樣的道理,點擊了里面的元素,然后因為冒泡,也觸發了父級元素事件
2016-07-21
focus和blur都是表單input事件,而aaron不是表單元素,是div,所以當然不會有反應了。
2016-07-15
首先要清楚focusin和focusout是鼠標事件,focus和blur是表單事件。?focus和blur不支持冒泡事件
你對冒泡事件的理解有誤,http://www.cnblogs.com/webflash/archive/2009/08/23/1552462.html,看看這個希望可以幫助你
?$(".aaron").focus(function() {?$(this).css('border', '2px solid red')? ? }) 這部分不會有反應的原因是,聚焦input后,它并不會向上尋找有包含類為aaron的div,也就不會為這個div設置樣式(不會去執行它的父級上的事件)
2016-07-14
這兩個無反應是為啥?。。