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

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

為什么jquery要設計focusin和focusout受冒泡影響呢?好處是什么?

為什么jquery要設計focusin和focusout受冒泡影響呢?好處是什么?相比之下blur與focus不受冒泡影響不是更方便嗎?

正在回答

4 回答

focus事件本身是不冒泡的,但是focusin可以,動態添加元素時,就不需重新綁定焦點事件,通過冒泡就能觸發。即只要在父元素上添加focusin事件就相當于在子元素被點擊時觸發子元素的focus事件。


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

weibo_一萬群什麼_0 提問者

不錯,這就叫事件委托。
2016-10-13 回復 有任何疑惑可以回復我~

補充點。樓上說的這個好處呢,可以體現為性能的優化,假如沒有事件的冒泡,你要處理子對象就要一個一個的去建立對象,當它可以在父類處理時,就只要一個對象就行了。不僅節約了內存,減少了對象的創建還減少了內存的處理時間?!秊s高級教程》可以看看

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

focusin當一個元素,或者其內部任何一個元素獲得焦點的時候會觸發這個事件。這跟focus事件區別在于,他可以在父元素上檢測子元素獲取焦點的情況。例如:

<p><input type="text" /> <span>focusout fire</span></p>
<p><input type="password" /> <span>focusout fire</span></p>jQuery 代碼:
$("p").focusin(function() {
? $(this).find("span").css('display','inline').fadeOut(1000);
});

focusout(fn)當一個元素,或者其內部任何一個元素失去焦點的時候會觸發這個事件。這跟blur事件區別在于,他可以在父元素上檢測子元素失去焦點的情況。

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

淡水狗

像 <script type="text/javascript"> $(".aaron").focus(function() { $(this).css('border', '2px solid red') }) $(".aaron1").focusin(function() { $(this).find('input').val('冒泡捕獲了focusin事件') }) </script> 里面 當我點擊aaron1的時候怎么里面的input沒有反應??
2017-07-12 回復 有任何疑惑可以回復我~
#2

淡水狗

并不是很能理解~~
2017-07-12 回復 有任何疑惑可以回復我~
#3

淡水狗

focusin()元素包含的元素中產生意思就是要點擊aaron1里面的input元素 才有反應是吧?
2017-07-12 回復 有任何疑惑可以回復我~

這就是focusin的好處之一,可以讓父元素檢測到子元素獲取焦點的情況。比如

HTML 代碼:

<p><input type="text" /> <span>focusout fire</span></p>
<p><input type="password" /> <span>focusout fire</span></p>
? ? ?

jQuery 代碼:

$("p").focusin(function() {
?$(this).find("span").css('display','inline').fadeOut(1000);
});


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

舉報

0/150
提交
取消
jQuery基礎(三)—事件篇
  • 參與學習       89987    人
  • 解答問題       645    個

jQuery第三階段開啟事件修煉,掌握對頁面進行交互的操作

進入課程

為什么jquery要設計focusin和focusout受冒泡影響呢?好處是什么?

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

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

幫助反饋 APP下載

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

公眾號

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