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

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

求解兩段代碼

這段代碼為什么沒有效果$(".aaron").focus(function() {$(this).css('border', '2px solid red')?})

不是focus()在元素本身產生,focusin()在元素包含的元素中產生
那么這段代碼不應該是點擊div的時候里層的input就有效果 ?但是為什么一定點在input上才有效果$(".aaron1").focusin(function() {

? ? ? ? $(this).find('input').val('冒泡捕獲了focusin事件')

? ? })


正在回答

5 回答

樓上說的有道理,個人理解是:表單元素可以用focus、focusin、blur、focusout來觸發相應的事件,但對于div等只能用focusin和focusout來觸發事件,也就是div上有這個事件,點擊input就能觸發。

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

因為div這個元素不支持focus。由于focus不進行冒泡針對本身,所以要么直接讓input用focus,要么就用focusin冒泡傳給input。

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

跟沒說一樣,不理解才問,說的跟課程里面的一樣等于沒解釋,我也懵逼了!

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

我第一次看錯了,代碼中的.aaron指向的是input外層的div,所以,你這個代碼會對外層的div起作用!

.focusin()方法和.focus()的事件源不同~· 舉個例子 <p><input type="text" /></p> 其中input元素可以觸發focus()事件;p是input的父元素,當它包含的元素input觸發了focus事件時,它就產生了focusin()事件。 個人理解為:focus()在元素本身產生,focusin()在元素包含的元素中產生。


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

你這段代碼本身拼寫就錯了:$(".aaron").focus(function() {$(this).css('border', '2px solid red')?}),改正拼寫就好了,正確代碼:$(".aaron2").focusin(function() {$(this).css('border', '2px solid red') })!

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

舉報

0/150
提交
取消

求解兩段代碼

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

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

幫助反饋 APP下載

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

公眾號

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