-
測試二是先選中p標簽,然后設置一個點擊事件,調(diào)用函數(shù),該函數(shù)的功能是彈出一個窗口顯示文本節(jié)點的內(nèi)容,再然后選中第二個button按鈕,也設置夜歌點擊事件,點擊該按鈕會調(diào)用上面的函數(shù)。測試三是先設置一個函數(shù)data(),該函數(shù)的功能是彈出一個窗口顯示e的值,然后在設置一個函數(shù)a(),該函數(shù)先選中第三個button,然后綁定一個點擊事件,點擊之后將1111傳遞給data函數(shù)的e,然后a()表示調(diào)用該函數(shù)
查看全部 -
Dom?3?5-2 只有body內(nèi)的跟選擇器匹配的元素,才會觸發(fā)事件回調(diào)函數(shù),不匹配的只是往上繼續(xù)冒泡.
查看全部 -
<script type="text/javascript">
? ? //點擊更新次數(shù)
? ? $("button:first").click(function(event,bottonName) {
? ? ? ? bottonName = bottonName || 'first';
? ? ? ? update($("span:first"),$("span:last"),bottonName);
? ? });
? ? //通過自定義事件調(diào)用,更新次數(shù)
? ? $("button:last").click(function() {
? ? ? ? $("button:first").trigger('click','last');
? ? });
? ? function update(first,last,bottonName) {
? ? ? ? first.text(bottonName);
? ? ? ? var n = parseInt(last.text(), 10);
? ? ? ? last.text(n + 1);
? ? }
? ? </script>
查看全部 -
e.target.textContent
查看全部 -
trigger事件不能實現(xiàn)envent,但是可以使用triggerHandler方法來實現(xiàn)event。
查看全部 -
trigger自動執(zhí)行是會有冒泡發(fā)生的,點擊button:first時候trigger自動執(zhí)行a的綁定事件click(就是點擊<a>),trigger是會冒泡的!所以點擊了<a>標簽就點擊了它所在的<div>,<div>有alert的事件就會發(fā)生,聚焦事件就不說了;
再說一下,triggerHandle,他不會發(fā)生冒泡,所以當點擊button:last時候呢,就不會出現(xiàn)alert啦,就僅僅是點擊了<a>標簽和聚焦操作。
查看全部 -
trigger事件:
觸發(fā)事件函數(shù),比如你點擊了按鈕B,B上綁著trigger按鈕A的函數(shù),那么按鈕A的函數(shù)被觸發(fā)
查看全部 -
triggerHandler與trigger的用法是一樣的,重點看不同之處:
triggerHandler不會觸發(fā)瀏覽器的默認行為,.triggerHandler( "submit" )將不會調(diào)用表單上的.submit()
.trigger() 會影響所有與 jQuery 對象相匹配的元素,而 .triggerHandler() 僅影響第一個匹配到的元素
使用 .triggerHandler() 觸發(fā)的事件,并不會在 DOM 樹中向上冒泡。 如果它們不是由目標元素直接觸發(fā)的,那么它就不會進行任何處理
與普通的方法返回 jQuery 對象(這樣就能夠使用鏈式用法)相反,.triggerHandler() 返回最后一個處理的事件的返回值。如果沒有觸發(fā)任何事件,會返回 undefined
?
查看全部 -
parseInt() 函數(shù)可解析一個字符串,并返回一個整數(shù)?!彼淖饔镁褪墙馕龀鲎址械谝粋€出現(xiàn)的數(shù)字,第一個參數(shù)就是要求解析的字符串,第二個參數(shù)是對第一個參數(shù)的補充,是數(shù)字幾就代表第一個參數(shù)中的數(shù)字是什么進制。例如:parseInt("11",2); //返回 3 (2+1) ?就是說 ?把“11”當做二進制看然后解析為十進制數(shù)字“3”.
查看全部 -
parseInt(數(shù)字, 進制位);
bottonName = bottonName || 'first';
這句話怎么理解?
? ? function update(first,last,bottonName) {
? ? ? ? first.text(bottonName);
? ? ? ? var n = parseInt(last.text(), 10);
? ? ? ? last.text(n + 1);
? ? }
這個update函數(shù)能不能解釋一下
如果存在bottonName,則bootonName=bottonName,否則,bottonName=first
update既不是jquery函數(shù)也不是原生函數(shù),是自定義函數(shù),你可以自己隨意改動他的參數(shù)跟功能,只要調(diào)用的時候保持名稱一致就可以
function
?update(first,last,bottonName)?{
?????????
first.text(bottonName);????????
//?將傳遞過來的first參數(shù)文本改為bottonName
?????????
var
?n?=?parseInt(last.text(),?10);????????
//獲取當前l(fā)ast.text的文本內(nèi)容,10進制取值,建立變量n,賦值為所取得的值。
?????????
last.text(n?+?1);????}?
//?將傳遞進來的last參數(shù)文本內(nèi)容修改為n+1,實現(xiàn)點擊數(shù)按照實際點擊數(shù)增加。
查看全部 -
第一個click沒有阻止冒泡,那為什么它只冒泡到外層div,沒有冒泡到body
因為他冒泡到div層?就被div?層點擊事件 event.stopPropagation()?阻止冒泡
event.stopPropagation() 方法:阻止事件冒泡
事件是可以冒泡的,為防止事件冒泡到DOM樹上,也就是不觸發(fā)的任何前輩元素上的事件處理函數(shù)
就是說不會觸發(fā)到div的父級以上,如果是在span綁定的click后面加的話div都不會顯示被點擊
查看全部 -
this指觸發(fā)事件的元素,無論你鼠標點擊在什么位置,觸發(fā)事件的元素都是ul,所以this指ul,但是e.target指鼠標的焦點元素,如果你點擊到了ul內(nèi)部的li,則e.target指的就是li,但是如果你點擊的是ul其他的非li部分,則this和e.target是一樣的。
如果不是通過冒泡產(chǎn)生的事件,則this和e.target沒有區(qū)別。
this是可以變化
但event.target不會變化,它永遠是直接接受事件的目標DOM元素。
查看全部 -
$( "button" ).on( "click", { ?name: "慕課網(wǎng)" }, greet );這句話怎么理解?
當在"button" 上 點擊的時候, 將name為 慕課網(wǎng) 的參數(shù)傳遞給 greet 函數(shù)。
function greet( event ) {
?alert( "Hello " + event.data.name ); //Hello 慕課網(wǎng)
}然后, 在greet函數(shù)中, 通過事件,觸發(fā)該函數(shù),?
實際上, event.data 就是??" name: "慕課網(wǎng)" "
然后, 在這里面有個name的自定義屬性為 "慕課網(wǎng)"
老師的解釋是: 可以通過第二參數(shù)(對象),當一個事件被觸發(fā)時,要傳遞給事件處理函數(shù)的
查看全部 -
在input元素上綁定keydown事件會發(fā)現(xiàn)一個問題:
每次獲取的內(nèi)容都是之前輸入的,當前輸入的獲取不到
keydown事件觸發(fā)在文字還沒敲進文本框,這時如果在keydown事件中輸出文本框中的文本,得到的是觸發(fā)鍵盤事件前的文本,而keyup事件觸發(fā)時整個鍵盤事件的操作已經(jīng)完成,獲得的是觸發(fā)鍵盤事件后的文本
keypress事件與keydown和keyup的主要區(qū)別
只能捕獲單個字符,不能捕獲組合鍵
無法響應系統(tǒng)功能鍵(如delete,backspace)
不區(qū)分小鍵盤和主鍵盤的數(shù)字字符
KeyPress主要用來接收字母、數(shù)字等ANSI字符,而 KeyDown 和 KeyUP 事件過程可以處理任何不被 KeyPress 識別的擊鍵。諸如:功能鍵(F1-F12)、編輯鍵、定位鍵以及任何這些鍵和鍵盤換檔鍵的組合等。
查看全部 -
down事件返回時的value
用console和e.target.value.length測試后應該是?
value值是在keydown事件之后和在keyup事件之前才傳遞過去的 所以在第一個框里輸入第一次字符是不顯示的而在第二個框里是顯示的
查看全部
舉報