-
說(shuō)一下我的理解:
trigger是自動(dòng)執(zhí)行,triggerHandle也是自動(dòng)執(zhí)行,這都知道了吧,
這一節(jié)讓我們區(qū)分它們之間的區(qū)別,trigger自動(dòng)執(zhí)行是會(huì)有冒泡發(fā)生的,點(diǎn)擊button:first時(shí)候trigger自動(dòng)執(zhí)行a的綁定事件click(就是點(diǎn)擊<a>),trigger是會(huì)冒泡的!所以點(diǎn)擊了<a>標(biāo)簽就點(diǎn)擊了它所在的<div>,<div>有alert的事件就會(huì)發(fā)生,聚焦事件就不說(shuō)了;
再說(shuō)一下,triggerHandle,他不會(huì)發(fā)生冒泡,所以當(dāng)點(diǎn)擊button:last時(shí)候呢,就不會(huì)出現(xiàn)alert啦,就僅僅是點(diǎn)擊了<a>標(biāo)簽和聚焦操作。
他們的作用呢,我覺(jué)得就是自動(dòng)執(zhí)行了,比如加載網(wǎng)頁(yè)就要彈出什么一類(lèi)的操作。
查看全部 -
冒泡不是從子元素往父元素冒泡么 怎么給父元素綁定click 子元素有行為
冒泡不是從子元素往父元素冒泡么 怎么給父元素綁定click 子元素有行為
這結(jié)果不正是事件冒泡機(jī)制的最終目的么~當(dāng)一個(gè)父元素下的多個(gè)子元素要表現(xiàn)出相同的效果的時(shí)候,利用冒泡機(jī)制給父元素綁定事件,以后你只要點(diǎn)擊子元素,都會(huì)冒泡到父元素,從而利用父元素綁定的事件~這樣就不用給每個(gè)子元素都去進(jìn)行綁定,減少了代碼冗余呀~~
查看全部 -
this和e.target區(qū)別,求教
this指向的是監(jiān)聽(tīng)事件的元素,e.target指向觸發(fā)事件的元素, 事件可以由ul觸發(fā),也可以由li觸發(fā),所以e.target可能是ul,也可能是li; 但無(wú)論是ul觸發(fā)還是li觸發(fā),都是由ul監(jiān)聽(tīng)捕獲的,所以this指向ul
e.target指向當(dāng)前點(diǎn)擊的DOM元素,點(diǎn)擊哪個(gè)li就是哪個(gè)li,點(diǎn)擊ul就是ul.因?yàn)閖s是會(huì)冒泡的,所以點(diǎn)擊li的時(shí)候,this會(huì)變成ul.
查看全部 -
關(guān)于冒泡問(wèn)題
之前章節(jié)里提到的冒泡事件是:子元素如果綁定了某一事件(比如說(shuō)mouseover),如果子元素出觸發(fā)了mouseover事件,它會(huì)一直往上找父元素上的mouseover事件,如果父元素有mouseover事件,那么父元素的mouseover也會(huì)被觸發(fā)。也就是說(shuō)父元素和子元素都綁定了相同事件才會(huì)出現(xiàn)冒泡現(xiàn)象。
但是這里的li元素并沒(méi)有綁定任何事件,怎么往上冒泡呢?換句話說(shuō),綁定的是ul元素,為什么起作用的是li元素?
事件這個(gè)東西應(yīng)該是稱(chēng)之為“監(jiān)聽(tīng)”更為恰當(dāng)。
當(dāng)單擊一個(gè)元素、或滑入滑出元素時(shí),都會(huì)由該元素觸發(fā)事件,然后一層一層向上冒泡,如果一直到body都沒(méi)有遇到某元素去監(jiān)聽(tīng)這個(gè)事件,那就沒(méi)有任何反應(yīng),如果該元素有監(jiān)聽(tīng)該單擊事件,那就會(huì)知道這個(gè)事件,如果該元素的父代或祖代有添加監(jiān)聽(tīng)事件,也會(huì)知道這個(gè)事件。
打個(gè)比喻,ABCDEF站成一排,A倒了一桶巧克力,從A流向F,
A用手沾了舔了舔,知道是甜的,A倒的
D用手沾了舔了舔,也知道是甜的,A倒的
這就是A和D監(jiān)聽(tīng)了“倒一桶巧克力”這個(gè)事件
如果沒(méi)有任何人舔,那這桶巧克力一樣從A流向F
不存在綁定的說(shuō)法,jquery只是處理觸發(fā)的事件,事件本身就有,如果不捕獲處理,事件會(huì)一直冒泡
這里只是在ul處理捕獲的事件,任何文檔對(duì)象如ul,li都可以觸發(fā)事件,只是在于是否捕獲處理
查看全部 -
textContent,,,為什么我不能用text()得到里里面的內(nèi)容
因?yàn)閠extContent是Dom對(duì)象,text()是jQuery方法
可以使用$(e.target).text()
查看全部 -
on綁定click事件和直接給元素綁定click事件有什么區(qū)別?
直接綁定一次只能對(duì)應(yīng)一個(gè)事件和一個(gè)函數(shù);如果用on綁定,一次可以進(jìn)行多種事件的綁定,以及多種函數(shù)的選用
click()只對(duì)頁(yè)面已經(jīng)存在的元素起作用,動(dòng)態(tài)生成的元素需要用到on,比如頁(yè)面中存在一個(gè)button,<button id='btn1' type='button'>btn1</button>,$('#btn1').click(....)是可以成功觸發(fā)的,但如果動(dòng)態(tài)創(chuàng)建一個(gè)新的button比如這樣:$('#btn1').after("<button id='btn2' type='button'>btn2</button>"),調(diào)用$('#btn2').click時(shí)是不起作用的,on('click','#btn2',function())則可以正常觸發(fā)。
查看全部 -
按下的一瞬間時(shí) 文字還沒(méi)有輸入到文本框所以第一次下邊獲取不到這個(gè)值。簡(jiǎn)單點(diǎn)說(shuō)文字輸入進(jìn)去文本框這個(gè)行為要慢于keydown事件。
e.target.value這句代碼怎么理解?
e.target表示該DOM元素,然后在獲取其相應(yīng)的屬性值。
查看全部 -
回車(chē)鍵或者點(diǎn)擊提交表單? ?會(huì)跳轉(zhuǎn)頁(yè)面? ?action="test.html"
回車(chē)鍵或者點(diǎn)擊提交表單,禁止瀏覽器默認(rèn)跳轉(zhuǎn)? action="destination.html"? ??
查看全部 -
target是當(dāng)前事件執(zhí)行的第一個(gè)具體DOM對(duì)象,這個(gè)DOM對(duì)象不變
this是事件冒泡到DOM樹(shù)的哪個(gè)對(duì)象,this就指向哪個(gè)對(duì)象,改變的
function中的參數(shù)e是怎么來(lái)的
e是event(事件)的意思,e.target就是事件的對(duì)象
查看全部 -
focusin(參數(shù)1,參數(shù)2),參數(shù)一是你要傳遞的數(shù)據(jù),參數(shù)二是你將數(shù)據(jù)傳遞給的函數(shù)a,函數(shù)a的第一個(gè)參數(shù)是事件對(duì)象,他的屬性data的值就是你傳遞的數(shù)據(jù),即參數(shù)1,我是這么理解的,希望對(duì)你有所幫助。
查看全部 -
輸入中文,不會(huì)觸發(fā)keypress事件,當(dāng)輸入字母、數(shù)字等ANSI字符會(huì)觸發(fā),中文就會(huì)顯示了,只輸入中文是不顯示的
查看全部 -
keydown是在鍵盤(pán)按下就會(huì)觸發(fā),獲取的是text是目標(biāo)的值,在你按下的時(shí)候執(zhí)行這個(gè)函數(shù),但是將一個(gè)字符輸入到目標(biāo)中是在按鍵松開(kāi)的時(shí)候才寫(xiě)入,所有每一次按下的時(shí)候都不會(huì)有當(dāng)前的按鍵字符顯示,
查看全部 -
click事件其實(shí)是由mousedown與mouseup 2個(gè)動(dòng)作構(gòu)成,所以點(diǎn)擊的動(dòng)作只有在松手后才觸發(fā)
查看全部 -
通過(guò)空格分離,傳遞不同的事件名,可以同時(shí)綁定多個(gè)事件
查看全部 -
.on? 綁定事件
第一個(gè)事件對(duì)應(yīng)一(多)個(gè)函數(shù)
一(多)個(gè)事件對(duì)應(yīng)一(多)個(gè)函數(shù)
查看全部
舉報(bào)