-
e.target代表當(dāng)前觸發(fā)事件的元素
查看全部 -
監(jiān)聽input,textarea,select的改變
查看全部 -
如何恢復(fù)刪除的 mousedown 事件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
如何恢復(fù)刪除的 mousedown 事件
?var n ?= 0;
? ? //綁定事件
? ? $(".aaron:first").on('mousedown mouseup', function(e) {
? ? ? ? $(this).text( '觸發(fā)類型:' + ?(e.type) + ",次數(shù)" + ++n)
? ? ? ? ++n;
? ? })
? ? //刪除事件
? ? $("button:first").click(function() {
? ? ? ? $(".aaron:first").off('mousedown')
? ? });
var f2=function(e) {
??????? $(this).text( '觸發(fā)類型:' +? (e.type) + ",次數(shù)" +n)
??????? ++n;
??? };
??? var f2_json={
??????? 'mousedown':f2,
??????? 'mouseup':f2,
??? }
??? //刪除事件
??? $("button:eq(1)").click(function() {
??????? $(".aaron:last").off();
??? });
??? //重裝事件
??? $("button:last").click(function(){
??????? $(".aaron:last").on(f2_json);
??? });? ? ? ? ? ? ? ?
2018-10-27
查看全部 -
有區(qū)別吧,
on('mousedown mouseup',function(){}) 就是只能綁定同一個(gè)函數(shù)事件
on('mousedown:function(e){},mouseup:function(e){}') 可以綁定同一個(gè) 或多個(gè)函數(shù)事件
? ??
查看全部 -
e表示這個(gè)事件,target表示這個(gè)事件的目標(biāo)
e只是指這個(gè)事件,而e.target是指事件觸發(fā)的dom,相當(dāng)于this。
區(qū)別是this會(huì)冒泡;
你要用只能用this.value或e.target.value。
有區(qū)別吧,
on('mousedown mouseup',function(){}) 就是只能綁定同一個(gè)函數(shù)事件
on('mousedown:function(e){},mouseup:function(e){}') 可以綁定同一個(gè) 或多個(gè)函數(shù)事件
查看全部 -
blur和focus不支持冒泡
focusout和focusin支持冒泡
查看全部 -
?$('.target1').keydown(function(e)?{????????$("em:first").text(e.target.value)????});
為什么keydown的值和直覺認(rèn)為的不一樣:
e.target.value是????e(事件)的target(某個(gè)元素)的value
說明keydown時(shí),最新一次的事件還沒被錄入input的輸入中,keydown后才被錄入
查看全部 -
當(dāng) textarea 或文本類型的 input 元素中的文本被選擇時(shí),會(huì)發(fā)生 select 事件。
查看全部 -
focus 和 blur 包含冒泡處理
focusin 和 focusout 不處理冒泡,換句話說事件的冒泡傳遞正常發(fā)生
查看全部 -
mouseout與mouseover會(huì)向父元素冒泡
mouseenter與mouseleave不會(huì)向父元素冒泡
查看全部 -
jQuery自定義事件:
trigger事件://不同用戶交互是在某一時(shí)刻自動(dòng)觸發(fā)該事件
1)$('#elem').trigger('click')
在綁定on的事件元素上,通過trigger方法就可以調(diào)用根據(jù)綁定到匹配元素的給定的事件類型執(zhí)行所有的處理程序和行為
2)$('#elem').trigger('Aaron',['參數(shù)1','參數(shù)2'])
trigger除了能夠觸發(fā)瀏覽器事件,同時(shí)還支持自定義事件,并且自定義時(shí)間還支持傳遞參數(shù)
triggerHandler事件:
1)triggerHandler不會(huì)觸發(fā)瀏覽器的默認(rèn)行為,.triggerHandler( "submit" )將不會(huì)調(diào)用表單上的.submit()
2).trigger() 會(huì)影響所有與 jQuery 對(duì)象相匹配的元素,而 .triggerHandler() 僅影響第一個(gè)匹配到的元素
3)使用 .triggerHandler() 觸發(fā)的事件,并不會(huì)在 DOM 樹中向上冒泡。 如果它們不是由目標(biāo)元素直接觸發(fā)的,那么它就不會(huì)進(jìn)行任何處理
4)與普通的方法返回 jQuery 對(duì)象(這樣就能夠使用鏈?zhǔn)接梅?相反,.triggerHandler() 返回最后一個(gè)處理的事件的返回值。如果沒有觸發(fā)任何事件,會(huì)返回 undefined
查看全部 -
jQuery事件對(duì)象:
事件對(duì)象是用來記錄一些事件發(fā)生時(shí)的相關(guān)信息的對(duì)象。事件對(duì)象只有事件發(fā)生時(shí)才會(huì)產(chǎn)生,并且只能是事件處理函數(shù)內(nèi)部訪問,在所有事件處理函數(shù)運(yùn)行結(jié)束后,事件對(duì)象就被銷毀回到上面的問題,既然事件對(duì)象是跟當(dāng)前觸發(fā)元素息息相關(guān)的,所以我們就能從里面相關(guān)的信息,從事件對(duì)象中找到 event.target
event.target:
target 屬性可以是注冊(cè)事件時(shí)的元素,或者它的子元素。通常用于比較event.target 和 this 來確定事件是不是由于冒泡而觸發(fā)的。經(jīng)常用于事件冒泡時(shí)處理事件委托
$(elem).on("click",function(event){
? ?event //事件對(duì)象
})
event.type://獲取事件的類型
觸發(fā)元素的事件類型
$("a").click(function(event) {
? alert(event.type); // "click"事件
});
event.pageX 和 event.pageY://獲取鼠標(biāo)當(dāng)前相對(duì)于頁面的坐標(biāo)
通過這2個(gè)屬性,可以確定元素在當(dāng)前頁面的坐標(biāo)值,鼠標(biāo)相對(duì)于文檔的左邊緣的位置(左邊)與 (頂邊)的距離,簡(jiǎn)單來說是從頁面左上角開始,即是以頁面為參考點(diǎn),不隨滑動(dòng)條移動(dòng)而變化
event.preventDefault() 方法://阻止默認(rèn)行為
這個(gè)用的特別多,在執(zhí)行這個(gè)方法后,如果點(diǎn)擊一個(gè)鏈接(a標(biāo)簽),瀏覽器不會(huì)跳轉(zhuǎn)到新的 URL 去了。我們可以用 event.isDefaultPrevented() 來確定這個(gè)方法是否(在那個(gè)事件對(duì)象上)被調(diào)用過了
event.stopPropagation() 方法://阻止事件冒泡
事件是可以冒泡的,為防止事件冒泡到DOM樹上,也就是不觸發(fā)的任何前輩元素上的事件處理函數(shù)
event.which://獲取在鼠標(biāo)單擊時(shí),單擊的是鼠標(biāo)的哪個(gè)鍵
event.which 將 event.keyCode 和 event.charCode 標(biāo)準(zhǔn)化了。event.which也將正?;陌粹o按下(mousedown 和 mouseupevents),左鍵報(bào)告1,中間鍵報(bào)告2,右鍵報(bào)告3
event.currentTarget : //在事件冒泡過程中的當(dāng)前DOM元素
冒泡前的當(dāng)前觸發(fā)事件的DOM對(duì)象, 等同于this
this和event.target的區(qū)別:
js中事件是會(huì)冒泡的,所以this是可以變化的,但event.target不會(huì)變化,它永遠(yuǎn)是直接接受事件的目標(biāo)DOM元素
.this和event.target都是dom對(duì)象
如果要使用jquey中的方法可以將他們轉(zhuǎn)換為jquery對(duì)象。比如this和$(this)的使用、event.target和$(event.target)的使用
查看全部 -
jQuery事件的綁定和解綁:
on()的多事件綁定:
1)基本用法://最常見的給元素綁定一個(gè)點(diǎn)擊事件,對(duì)比一下快捷方式與on方的不同
?$("#elem").on( events ,[ selector ] ,[ data ] )
例子:
$("#elem").click(function(){})? //快捷方式
$("#elem").on('click',function(){}) //on方式
2)多個(gè)事件綁定同一個(gè)函數(shù)://通過空格分離,傳遞不同的事件名,可以同時(shí)綁定多個(gè)事件
?$("#elem").on("mouseover mouseout",function(){ });
3)多個(gè)事件綁定不同函數(shù)://通過空格分離,傳遞不同的事件名,可以同時(shí)綁定多個(gè)事件,每一個(gè)事件執(zhí)行自己的回調(diào)方法
$("#elem").on({
? ? mouseover:function(){},??
? ? mouseout:function(){}
});
4)將數(shù)據(jù)傳遞到處理程序://可以通過第二參數(shù)(對(duì)象),當(dāng)一個(gè)事件被觸發(fā)時(shí),要傳遞給事件處理函數(shù)
function?greet(?event?)?{ ??alert(?"Hello?"?+?event.data.name?);?//Hello?慕課網(wǎng) } $(?"button"?).on(?"click",?{ ??name:?"慕課網(wǎng)" },?greet?);
on()的高級(jí)用法://委托機(jī)制(相當(dāng)于多加了選擇器)
$("elem").on( events ,[ selector ] ,[ data ], handler(eventObject) )
卸載事件off()方法://通過off() 方法移除該綁定
$("elem").off()//刪除所有事件
查看全部 -
jQuery鍵盤事件:
keydown()事件:
當(dāng)用戶在一個(gè)元素上第一次按下鍵盤上字母鍵的時(shí)候,就會(huì)觸發(fā)它。使用上非常簡(jiǎn)單,與基本事件參數(shù)處理保持一致,這里使用不在重復(fù)了,列出使用的方法
//直接綁定事件
1)$elem.keydown( handler(eventObject) )
//傳遞參數(shù)
2)$elem.keydown( [eventData ], handler(eventObject) )
//手動(dòng)觸發(fā)已綁定的事件
3)$elem.keydown()
keyup()事件:
當(dāng)用戶在一個(gè)元素上第一次松手鍵盤上的鍵的時(shí)候,就會(huì)觸發(fā)它。使用方法與keydown是一致的只是觸發(fā)的條件是方法的
注意:
1)keydown是在鍵盤按下就會(huì)觸發(fā)
2)keyup是在鍵盤松手就會(huì)觸發(fā)
3)理論上它可以綁定到任何元素,但keydown/keyup事件只是發(fā)送到具有焦點(diǎn)的元素上,不同的瀏覽器中,可獲得焦點(diǎn)的元素略有不同,但是表單元素總是能獲取焦點(diǎn),所以對(duì)于此事件類型表單元素是最合適的。
keypress()事件:
keypress()與keydown()方法相同,只是來接收字母、數(shù)字等ANSI字符
keypress事件與keydown和keyup的主要區(qū)別:
1)只能捕獲單個(gè)字符,不能捕獲組合鍵
2)無法響應(yīng)系統(tǒng)功能鍵(如delete,backspace)
3)不區(qū)分小鍵盤和主鍵盤的數(shù)字字符
查看全部 -
jQuery表單事件:
blur與focus事件://失去焦點(diǎn)和獲得焦點(diǎn)
focus()在元素本身產(chǎn)生,focusin()在元素包含的元素中產(chǎn)生
blur()在元素本身產(chǎn)生,focusout()在元素包含的元素中產(chǎn)生
change事件://<input>元素,<textarea>和<select>元素的值都是可以發(fā)生改變的,開發(fā)者可以通過change事件去監(jiān)聽這些改變的動(dòng)作
1)input元素
監(jiān)聽value值的變化,當(dāng)有改變時(shí),失去焦點(diǎn)后觸發(fā)change事件。對(duì)于單選按鈕和復(fù)選框,當(dāng)用戶用鼠標(biāo)做出選擇時(shí),該事件立即觸發(fā)。
2)select元素
對(duì)于下拉選擇框,當(dāng)用戶用鼠標(biāo)作出選擇時(shí),該事件立即觸發(fā)
3)textarea元素
多行文本輸入框,當(dāng)有改變時(shí),失去焦點(diǎn)后觸發(fā)change事件
select事件://當(dāng) textarea 或文本類型的 input 元素中的文本被選擇時(shí),會(huì)發(fā)生 select 事件(select事件只能用于<input>元素與<textarea>元素)
方法一:$ele..select()
方法二:$ele.select( handler(eventObject) )
方法三:$ele.select( [eventData ], handler(eventObject) )
submit事件://提交表單是一個(gè)最常見的業(yè)務(wù)需求,比如用戶注冊(cè),一些信息的輸入都是需要表單的提交。同樣的有時(shí)候開發(fā)者需要在表單提交的時(shí)候過濾一些的數(shù)據(jù)、做一些必要的操作
方法一:$ele.submit()
方法二:$ele.submit( handler(eventObject) )
方法三:$ele.submit( [eventData ], handler(eventObject) )
具體能觸發(fā)submit事件的行為:
1)<input type="submit">
2)<input type="image">
3)<button type="submit">
當(dāng)某些表單元素獲取焦點(diǎn)時(shí),敲擊Enter(回車鍵)
查看全部
舉報(bào)