focus()在元素本身產生,focusin()在元素包含的元素中產生,你們隊這句話是如何理解的???
focus()在元素本身產生,focusin()在元素包含的元素中產生
對這句話是怎么理解的??
前面一截可以看懂,后面一截給我的感覺像是:在產生foucs()的元素的內部 的 元素產生focusin()。
求解!謝謝
focus()在元素本身產生,focusin()在元素包含的元素中產生
對這句話是怎么理解的??
前面一截可以看懂,后面一截給我的感覺像是:在產生foucs()的元素的內部 的 元素產生focusin()。
求解!謝謝
2019-08-07
舉報
2020-04-01
冒泡概念,你可以理解成方法會被子元素繼承;所以focusin在.aaron設置之后,它的所有子元素都會繼承這個方法;而focus在.aaron1設置后,只有.aaron1本身具有focus方法,所以你點它的額子元素,沒有反應
2019-12-19
我的理解:
我的理解:
1、首先從定義上看:
(1)focus():當元素獲得焦點時(當通過鼠標點擊選中元素或通過 tab 鍵定位到元素時),發生 focus 事件。
(2)focusin():當元素(或在其內的任意元素)獲得焦點時發生 focusin 事件。
2、focus():需要在表單元素本身上綁定才有效果,如練習中的
?$(".aaron").focus(function() {//focus()此時是綁定在class=aaron的div上的
? ? ? ? $(this).css('border', '2px solid red');//而div無法聚焦,所以點擊div時看不到效果
? ? })//再點擊子元素input時發現也無效果,說明父元素綁定的focus事件不會波及子元素
若想讓input有效果,就應將focus綁定在它本身,修改如下:
?$(".aaron>input").focus(function() {
? ? ? ? $(this).css('border', '2px solid red')
? ? })
2、focusin():在元素包含的元素中產生。還是拿練習中的例子:
$(".aaron1").focusin(function() {//focusin綁定在class=aaron1的div上
? ? ? ? $(this).find('input').val('冒泡捕獲了focusin事件')//此時只有input獲焦時才會執行規定的函數
? ? })//說明,fucusin雖然綁定在父元素aaron1上,但實際是由其子元素input獲焦時產生。
3、總結:focus()需要在表單元素本身上使用才能產生效果,focusin()在任意子元素獲得焦點時也會觸發。
2019-10-29
他這句話表達有誤,換言之是“focus()由元素本身產生,focusin()在元素父類的元素產生。”
就是,我點擊input,input發生focus()事件,其父標簽div就發生了focusin()
2019-10-21
我的理解是focus只在當前綁定的元素有效,而focusIn就是給綁定元素(parentNode)或者綁定元素的子元素(childNode)(能觸發這個事件的子元素),都添加一個focus事件,子元素(childNode)的focus事件觸發之后就會返回父元素(parentNode)focusin的執行語句。
就是綁定focusin的節點,如果本身有focus事件的話,事件觸發后返回執行語句。
如果綁定focusin的節點沒有focus事件,而它的子節點會有focus事件。當他的子節點觸發完focus事件之后,會返回父節點(綁定focusin事件的那個節點)的執行語句。
2019-08-20
我開始也不明白,后來看懂了,意思是focus只在元素本身起作用,例如$(".aaron")本身是個div,div是無法聚焦的,第一個函數沒有被調用。focusin作用在元素包含的元素,即$(".aaron")本身是個div,div中有input框,那么input框被聚焦,那也說明focusin被調用生效
2019-08-07
focusin()在元素包含的元素中產生的意思是指子元素聚焦時才能觸發父元素的focusin()方法,例如: