麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

jquery中的事件處理詳細(xì)介紹

2019-11-20 22:37:43
字體:
供稿:網(wǎng)友
1.頁面載入完畢響應(yīng)事件
所謂頁面載入完畢是指DOM元素載入就緒了,能夠被讀取和操作了。
①jQuery中的$(doucument).ready()事件
ready(fn)是jQuery事件模塊中最重要的一個(gè)函數(shù)。這個(gè)方法可以看作是對(duì)window.onload注冊(cè)事件的替代方法。通過使用這個(gè)方法,可以在DOM載入就緒時(shí)立刻調(diào)用所綁定的函數(shù),而幾乎所有的javaScript函數(shù)都是需要在那一刻執(zhí)行。
ready(fn) 返回值:Object 參數(shù)-fn:要在DOM載入就緒時(shí)執(zhí)行的參數(shù)Function 當(dāng)DOM載入就緒時(shí)綁定一個(gè)要執(zhí)行的函數(shù)
而它有一種很簡單的縮寫形式$(document).ready(function(){}) => $(function(){})
②window.onload()事件和$(document).ready()事件的比較
window.onload()=function(){}
如果使用多個(gè)window.onload(),則只有最后一個(gè)綁定的函數(shù)能被執(zhí)行,它將覆蓋前面所有window.onload()綁定的函數(shù)。
如果使用多個(gè)$(),則它們都能被執(zhí)行。
需要注意的是如果<body onload> body標(biāo)簽的onload事件已經(jīng)注冊(cè)了某個(gè)函數(shù) 則$()事件注冊(cè)的函數(shù)將不會(huì)被執(zhí)行

2.綁定與反綁定事件監(jiān)聽器
①綁定事件
⑴bind(type,[data],fn)函數(shù)
就是將某函數(shù)與某元素的某事件綁定在一起 $("#id").click(function(){})就是將一個(gè)匿名函數(shù)與id元素的click事件綁在一起
但上面的例子其實(shí)只是縮寫形式,因?yàn)槠涫呛唵纬S玫氖录壎?正規(guī)寫法應(yīng)如下:
$("#id").bind("click",[data],function(){})
bind(type,[data],fn) 返回值:Object 參數(shù)-type:事件類型String data:可選,作為event.data屬性值傳遞給后面fn的實(shí)參Object fn:綁定到事件上的函數(shù)Function
⑵為處理函數(shù)傳遞參數(shù)
這里用到bind()函數(shù)的第二個(gè)參數(shù)及event.data屬性為fn函數(shù)傳遞參數(shù)
復(fù)制代碼 代碼如下:

<input id="Text2" type="text" />
$("#Text2").bind("click",{first:"1",second:"2"},function(event){
if(event.data.first=="1"){$(this).val("歡迎光臨")}
if(event.data.second=="1"){$(this).val("")}
});
})

第二個(gè)參數(shù)為一個(gè)json對(duì)象,在fn函數(shù)中通過event.data通過鍵名獲得參數(shù)值
⑶阻止瀏覽器默認(rèn)的行為
有時(shí)bind綁定的函數(shù)會(huì)與瀏覽器默認(rèn)的操作沖突,這時(shí)如果想阻止瀏覽器默認(rèn)的操作,只需在fn后面加一句return false;
復(fù)制代碼 代碼如下:

$("form").bind("submit",function(){return false;})

②反綁定事件
就是解除與某元素的某事件綁定在一起的某函數(shù)
unbind([type],[fn名]) 返回值:Object 參數(shù)-type:事件類型String fn名:要被解除綁定的函數(shù)名Function
以上倆參數(shù)都是可選參數(shù) 如果參數(shù)為空,就是解除所有匹配元素的所有事件所綁定的函數(shù)
復(fù)制代碼 代碼如下:

$(function(){$("#btn1").click(function(){
$("input[type=text]").unbind()})
})

單擊btn1后,解除所有為type=text文本框的事件綁定的所有函數(shù)
③一次性的事件綁定
就是為某元素的某事件所綁定的某函數(shù)只能被執(zhí)行一次
one(type,[data],fn) 返回值:Object 參數(shù)-type:事件類型String data:可選,作為event.data屬性值傳遞給后面fn的實(shí)參Object fn:綁定到事件上的函數(shù)Function
使用與bind()函數(shù)一致,不同之處就是one里的fn只能被執(zhí)行一次。

3.事件觸發(fā)器
上述綁定的一些函數(shù),需要用戶執(zhí)行一定的操作才會(huì)被執(zhí)行,如click事件綁定的函數(shù)需要用戶單擊相應(yīng)的元素才會(huì)被執(zhí)行。但事件觸發(fā)器可以用代碼模擬用戶的操作動(dòng)作進(jìn)而執(zhí)行事件所綁定的函數(shù),而不需要用戶進(jìn)行某些操作。
trigger(type,[data]) 返回值:Object 參數(shù)-type:事件類型String data:可選,傳遞給所觸發(fā)的事件所綁定的函數(shù)的實(shí)參Array(是一個(gè)javascript數(shù)組) 觸發(fā)所匹配的元素的某類事件所綁定的所有函數(shù),當(dāng)這類事件與瀏覽器的默認(rèn)操作沖突時(shí)該事件觸發(fā)器會(huì)執(zhí)行瀏覽器默認(rèn)的操作
復(fù)制代碼 代碼如下:

<input id="Text1" type="text" value="輸入用戶名" />
<input id="Text2" type="text" />
$(function(){$("#Text1").bind("click",function(){$(this).val("")})})
$(function(){$("#Text2").click(function(event,pamas1,pamas2)
{$(this).val("trigger事件觸發(fā)器"+pamas1+pamas2)})
})
$(function(){$("input[type=text]").trigger("click",["1","2"])})

如上代碼,雖然為倆文本框的單擊事件綁定了函數(shù),可最后一句代碼也為這倆文本框的單擊事件設(shè)置了觸發(fā)器,所以不需要用戶單擊相應(yīng)的文本框就能執(zhí)行它們的單擊事件所綁定的函數(shù)。另外該觸發(fā)器還為它所觸發(fā)的函數(shù)傳遞了參數(shù),是一個(gè)javascript數(shù)組,可以在Text2的單擊函數(shù)里看到參數(shù)的獲得。
trigger函數(shù)所觸發(fā)的事件與瀏覽器的默認(rèn)操作沖突時(shí)該事件觸發(fā)器會(huì)執(zhí)行瀏覽器默認(rèn)的操作,而triggerHandler函數(shù)則不會(huì)執(zhí)行瀏覽器默認(rèn)的操作。
triggerHandler(type,[data]) 與trigger的使用一致

4.事件的交互處理
①hover:模仿鼠標(biāo)懸停
hover(over,out) 返回值:Object 參數(shù)-over:鼠標(biāo)移到元素上觸發(fā)的函數(shù)Function out:鼠標(biāo)移出元素觸發(fā)的函數(shù)Function
復(fù)制代碼 代碼如下:

<input type="text" id="hover1" /><span id="hoverpd" style="display:none;">判斷用戶輸入</span>
$(function(){$("#hover1").hover(function(){
$("#hoverpd").show();},function(){
$("#hoverpd").hide();})
})

②toggle:多次單擊的循環(huán)響應(yīng)
為匹配的元素的單擊事件添加許多綁定函數(shù),這些函數(shù)隨著不停的單擊該元素而循環(huán)執(zhí)行
toggle(fn1,fn2,fn3...) 返回值:Object 參數(shù)-fn1,fn2,fn3...要循環(huán)的函數(shù)Function
復(fù)制代碼 代碼如下:

<input type="button" id="toggle1" value="toggle"/>
var i=0;
$(function(){$("#toggle1").toggle(function(){i++;$("#hover1").val(i)},
function(){i=i+2;$("#hover1").val(i)})
})

5.jQuery的內(nèi)置事件類型
①jQuery內(nèi)置事件函數(shù)的兩種聲明方式
不帶參數(shù)的事件函數(shù)-事件類型名() 模擬了用戶的操作
帶參數(shù)的事件函數(shù)-事件類型名(事件函數(shù))
$($("#id").click(function(){})) 帶參數(shù)的事件函數(shù)
$($("#id").click(function(){}); $("#id").click();) 不帶參數(shù)的事件函數(shù)-不單擊#id也會(huì)執(zhí)行相應(yīng)函數(shù) 即模擬了用戶操作
②jQuery內(nèi)置事件類型分類
⑴瀏覽器相關(guān)事件
error(fn) 匹配元素發(fā)生錯(cuò)誤時(shí)觸發(fā)某函數(shù),error事件沒有標(biāo)準(zhǔn),如當(dāng)圖像src無效時(shí)會(huì)觸發(fā)圖像的error事件
load(fn) 匹配元素加載完后觸發(fā)某函數(shù),如window是在所有DOM對(duì)象加載完才觸發(fā),其他單個(gè)元素是在單個(gè)元素加載完后觸發(fā)
unload(fn)
resize(fn) 匹配元素改變大小時(shí)觸發(fā)某函數(shù)
scroll(fn) 滾動(dòng)條發(fā)生變化時(shí)觸發(fā)
⑵表單相關(guān)事件
change(fn) 在匹配元素失去焦點(diǎn)時(shí)觸發(fā),也會(huì)在元素獲得焦點(diǎn)后觸發(fā)
select(fn) 當(dāng)用戶在文本框中選中某段文字時(shí)觸發(fā)
submit(fn) 提交表單時(shí)觸發(fā)
⑶鍵盤操作相關(guān)事件
keydown(fn) 鍵盤按下時(shí)觸發(fā)
keypress(fn) 鍵盤按下又彈起時(shí)觸發(fā) 順序是keydown->keyup->keypress
keyup(fn) 鍵盤彈起時(shí)觸發(fā)
⑷鼠標(biāo)操作相關(guān)事件
click(fn) 順序是mousedown->mouseup->click
mousedown(fn)
mouseup(fn)
dblclick(fn)
mouseover(fn)
mouseout(fn)
mousemove(fn) 在匹配元素上移動(dòng)時(shí)觸發(fā),事件處理函數(shù)會(huì)被傳遞一個(gè)變量--事件對(duì)象(其clientX,clientY屬性代表鼠標(biāo)坐標(biāo))
⑸界面顯示相關(guān)事件
blur(fn) 匹配元素失去焦點(diǎn)時(shí)觸發(fā) 即可是鼠標(biāo) 也可使Tab鍵
focus(fn)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成年免费视频黄网站在线观看 | 欧美成人精品 | 在线成人影视 | 一级做a爱视频 | 国产亚洲精品久久 | xnxx 美女19| 亚洲人成中文字幕在线观看 | 日日草视频 | 成人午夜影院 | 美国一级免费视频 | 一本一本久久a久久精品综合小说 | 国产噜噜噜噜噜久久久久久久久 | 黄视频网站免费观看 | 免费国产视频在线观看 | 午夜精品毛片 | 伊人yinren22综合网色 | 成人性视频免费网站下载软件 | 午夜视频久久 | 久久久久久久久久亚洲 | 中文字幕在线观看91 | 嗯~啊~用力~高h | 羞羞网站 | 色妹子久久 | 欧洲成人综合网 | 免费黄网站在线播放 | 国产乱淫a∨片免费视频 | 成人青青草 | 色综合网在线观看 | 亚洲一区二区三区在线免费观看 | 国产成人综合在线视频 | 欧美日韩亚洲国产精品 | 999精品久久久 | 欧美一区黄色 | 牛牛碰在线视频 | 911精品影院在线观看 | 国产黄色一区二区 | 亚洲精品一区二区三区免 | 高清国产免费 | 久久精品4| 亚洲码无人客一区二区三区 | www视频免费观看 |