-
keydown有延遲?
第一次按下鍵盤(pán),沒(méi)反應(yīng)。第二次按下,下面顯示鍵盤(pán)只有第二次輸入的內(nèi)容
keydown事件觸發(fā)在文字還沒(méi)敲進(jìn)文本框,這時(shí)如果在keydown事件中輸出文本框中的文本,得到的是觸發(fā)鍵盤(pán)事件前的文本,就是當(dāng)你按下鍵盤(pán)時(shí)先觸發(fā)keydown,再顯示字母
查看全部 -
鍵盤(pán)事件:
在鍵盤(pán)事件中,將用戶行為分解成2個(gè)動(dòng)作,鍵盤(pán)按下與松手,針對(duì)這兩種動(dòng)作,jQuery分別提供可對(duì)應(yīng)的keydown與keyup方法來(lái)監(jiān)聽(tīng)。
查看全部 -
submit事件:監(jiān)聽(tīng)提交表單動(dòng)作。
具體能觸發(fā)submit事件的行為:
<input type="submit">
<input type="image">
<button type="submit">
當(dāng)某些表單元素獲取焦點(diǎn)時(shí),敲擊Enter(回車(chē)鍵)
上述這些操作下,都可以截獲submit事件。
這里需要特別注意:
form元素是有默認(rèn)提交表單的行為,如果通過(guò)submit處理的話,需要禁止瀏覽器的這個(gè)默認(rèn)行為 傳統(tǒng)的方式是調(diào)用事件對(duì)象??e.preventDefault()?來(lái)處理,?jQuery中可以直接在函數(shù)中最后結(jié)尾return?false即可
jQuery處理如下:
$("#target").submit(function(data)?{? ???return?false;?//阻止默認(rèn)行為,提交表單 });
查看全部 -
select事件:
當(dāng)textarea或文本類型的input元素中的文本唄選擇時(shí),會(huì)發(fā)生select事件。
這個(gè)函數(shù)會(huì)調(diào)用執(zhí)行綁定到select事件的所有函數(shù),包括瀏覽器的默認(rèn)行為??梢酝ㄟ^(guò)在某個(gè)綁定的函數(shù)中返回false來(lái)防止觸發(fā)瀏覽器的默認(rèn)行為。
select事件只能用于input元素和textarea元素。
查看全部 -
change事件:
<input><textarea><select>元素的值都是可以發(fā)生改變的,開(kāi)發(fā)者可以通過(guò)change事件去監(jiān)聽(tīng)這些改變的動(dòng)作。
查看全部 -
冒泡處理最佳回答:
冒泡處理:也可以從字面意思理解為,氣泡在水中會(huì)向上浮動(dòng)。那么我們現(xiàn)在就解釋什么是氣泡浮動(dòng)就好了。
氣泡:也就是所謂的觸發(fā)事件。
向上浮動(dòng):不僅會(huì)觸發(fā)自身的事件,而且還會(huì)一級(jí)一級(jí)地向上浮動(dòng)查找祖輩節(jié)點(diǎn)的同效果事件,直到根節(jié)點(diǎn)為止,沒(méi)完沒(méi)了。
舉例:在#div1 中有個(gè)子元素?#div2
定義:#div1 的mouseout事件; #div2 的mouseout事件?
效果:當(dāng)觸發(fā)#div2 的mouseout事件時(shí),一定會(huì)觸發(fā)#div1 的mouseout事件。因?yàn)?div2觸發(fā)事件后,它還沒(méi)完,還會(huì)向上一級(jí)級(jí)查找祖輩們有沒(méi)有定義相同的mouseout事件,如果有就觸發(fā),這里顯然有定義#div1的mouseout事件,而且#div1還是#div2的父輩元素,所以會(huì)觸發(fā)#div1的mouseout事件。(這里說(shuō)的有點(diǎn)多,顯得有點(diǎn)累贅,主要是想讓你能理解。)
如果把mouseout事件 替換成 mouseleave事件就不會(huì)了,因?yàn)閙ouseleave事件,只會(huì)觸發(fā)自身的事件,不會(huì)冒泡祖輩們,讓他們安靜一點(diǎn)。
瀏覽器的解析DOM方式之一
瀏覽器解析DOM主要有兩種方式,冒泡機(jī)制和委托機(jī)制,IE瀏覽器主要采用的是冒泡機(jī)制,谷歌以及其他瀏覽器主要采用委托機(jī)制。
冒泡機(jī)制即,作用于DOM上的操作會(huì)冒泡傳遞,就是先作用在最具體的元素然后向上冒泡,繼續(xù)作用他的父元素,到祖元素,再到最后的整個(gè)DOM文檔(當(dāng)然這個(gè)是可以設(shè)置冒泡阻止到那兒)
委托機(jī)制相反,作用于DOM上的操作會(huì)最先作用在整個(gè)DOM文檔上,然后才會(huì)找到事件最具體的元素。
?????? 這里的冒泡處理,應(yīng)該是指阻止了冒泡排序,并兼容了委托機(jī)制,提高網(wǎng)頁(yè)兼容性。
查看全部 -
冒泡事件:
冒泡事件最好的理解就是和水的冒泡是一樣的,就是從最底層向上去找尋參數(shù),在html中就是從最里層向最外層去尋找合適的標(biāo)簽之后就停止。
查看全部 -
什么是冒泡處理?
冒泡現(xiàn)象其實(shí)可以理解為:遇到“問(wèn)題”找“爸爸”。
?“問(wèn)題”:就是一些特定的事件。?
“爸爸”:就是父級(jí)元素。?
舉例:focusin案例中第二個(gè)綠盒子里的input元素被我們點(diǎn)擊時(shí),就觸發(fā)了focusin事件。
?但是input表示:我很方啊,我沒(méi)有這個(gè)事件的處理方法??!咋整?找老爸,問(wèn)他有沒(méi)有!
?綠盒子老爸說(shuō):莫方,我有,讓我來(lái)! 最終就調(diào)用了綠盒子老爸的方法。
?PS:如果綠盒子老爸自己也沒(méi)有呢?他會(huì)問(wèn)他的老爸,以此類推,一直問(wèn)到老祖宗window,都沒(méi)有的話就只好啥也不做啦!
有問(wèn)題找爸爸,這是一個(gè)方面,但是如前面的mouseover,mouseout和mouseenter和mouseleave,如果mouseover父子同時(shí)有的話,在子元素上移動(dòng)就都執(zhí)行,mouseenter就只執(zhí)行子元素,這里說(shuō)的focus如果子元素有focus ,父元素有focusin,在子元素上聚焦就會(huì)都執(zhí)行 ,如果focusin在子元素上,父元素也有,就都執(zhí)行,如果是focus 就只執(zhí)行自己(前提是父元素上沒(méi)有focusin,有沒(méi)有focus無(wú)所謂),簡(jiǎn)單的說(shuō)就是如果父子都有這個(gè)事件,在子元素上觸發(fā),父元素和子元素的事件都會(huì)觸發(fā)
focus,blur是表單事件,說(shuō)白了只有表單控件如input,textarea上才可以添加,而表單空間之間幾乎不存在父子嵌套的關(guān)系,所以談不上會(huì)引發(fā)冒泡事件,像div,p等其他的html元素是不可以添加這個(gè)事件的,那么,也就談不上子元素父元素之間的事件相互激發(fā),談不上冒泡了。。focusin ,focusout是鼠標(biāo)事件,可以添加在任何html元素上的,而很明顯的html元素會(huì)存在嵌套關(guān)系,比如div里裝一個(gè)表單控件input,那么一旦div 和input上都有focusin事件,點(diǎn)擊input子元素的時(shí)候,肯定會(huì)觸發(fā)父元素div上的冒泡事件。
一句話:究其根本是:focus? blur 是存在于幾乎無(wú)嵌套關(guān)系的表單控件上,不存在冒泡事件
focusin? focusout是存在所有html元素上的,有嵌套關(guān)系的元素就可以引發(fā)冒泡事件。
查看全部 -
表單事件之blur與focus事件。
focusin、focusout事件與blur事件、focus事件的本質(zhì)區(qū)別為:是否支持冒泡處理。
focus()在元素本身產(chǎn)生,focusin()在元素包含的元素中產(chǎn)生。
focusin()在元素包含的元素中產(chǎn)生的意思是指子元素聚焦時(shí)才能觸發(fā)父元素的focusin()方法。
focus只在元素本身起作用,例如$(".aaron")本身是個(gè)div,div是無(wú)法聚焦的,第一個(gè)函數(shù)沒(méi)有被調(diào)用。focusin作用在元素包含的元素,即$(".aaron")本身是個(gè)div,div中有input框,那么input框被聚焦,那也說(shuō)明focusin被調(diào)用生效
查看全部 -
當(dāng)一個(gè)元素,或者其內(nèi)部任何一個(gè)元素失去焦點(diǎn)時(shí),使用focusout事件可以捕獲這個(gè)動(dòng)作。
查看全部 -
$("input:last").focusin('慕課網(wǎng)', function fn(e) {
? ? ? ? ? ? ?$(this).val(e.data)
? ? ? ? ? ? });
首先,因?yàn)?("ele").focusin('data','fn'),點(diǎn)擊文本框觸發(fā)焦點(diǎn)事件,'data'傳入了數(shù)據(jù):“慕課網(wǎng)”儲(chǔ)存在focusin事件里面(也就是這里的e),后面的e.data就是讀取你傳入的數(shù)據(jù):“慕課網(wǎng)”這3個(gè)中文。val()就是把data數(shù)據(jù)輸入到input文本框里。也就是點(diǎn)擊文本框的時(shí)候會(huì)出現(xiàn)“慕課網(wǎng)”的原因了。
查看全部 -
focusin事件:
當(dāng)一個(gè)元素或者其內(nèi)部任何一個(gè)元素獲得焦點(diǎn)時(shí),使用focusin事件可以捕獲這個(gè)動(dòng)作。
查看全部 -
hover ?是鼠標(biāo)進(jìn)入 ?和 鼠標(biāo)出去兩個(gè)動(dòng)作
查看全部 -
jquery設(shè)置多個(gè)css的屬性是這樣的--->????$(
"p"
).css({
"background-color"
:
"yellow"
,
"font-size"
:
"200%"
});???屬性鍵值對(duì)是需要用大括號(hào)包起來(lái)的。
查看全部 -
為什么鼠標(biāo)離開(kāi)綁定mouseover的元素也會(huì)觸發(fā)moseover
因?yàn)殡x開(kāi)子元素,相當(dāng)于又重新進(jìn)入父元素,所以會(huì)觸發(fā)父元素的mouseover事件
查看全部
舉報(bào)