亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

沒怎么理懂,div里要是有好幾個input呢?冒泡不是由里向外么?

focusin()在元素包含的元素中產生,怎么產生的?通過點擊元素中的元素?然后觸發了啥?

我印象中的冒泡是當div與其中的元素都綁定了click事件時,點擊里面的元素會向外冒泡,觸發div的點擊事件

正在回答

5 回答

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事件就被觸發了,就出現反應了


15 回復 有任何疑惑可以回復我~
#1

THMAIL

聽君一席話,勝過自己思考一個小時
2016-09-20 回復 有任何疑惑可以回復我~
#2

Cshine 回復 THMAIL

哈哈哈 好久沒來慕課網 突然看到這句評論 瞬間有點小嗨皮
2016-10-27 回復 有任何疑惑可以回復我~
#3

冥oo冥

6666
2016-11-08 回復 有任何疑惑可以回復我~

和click是同樣的道理,點擊了里面的元素,然后因為冒泡,也觸發了父級元素事件

0 回復 有任何疑惑可以回復我~

focus和blur都是表單input事件,而aaron不是表單元素,是div,所以當然不會有反應了。

1 回復 有任何疑惑可以回復我~

首先要清楚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設置樣式(不會去執行它的父級上的事件)

1 回復 有任何疑惑可以回復我~
#1

guoguo13

說錯了,,不是冒泡事件。。。是事件冒泡。。囧
2016-07-15 回復 有任何疑惑可以回復我~

這兩個無反應是為啥?。。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

沒怎么理懂,div里要是有好幾個input呢?冒泡不是由里向外么?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號