bind();
10年積累的做網(wǎng)站、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有大田免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
參數(shù)一:要綁定事件函數(shù)的事件名。
參數(shù)二:要綁定的事件函數(shù)(事件函數(shù)名),如果將來(lái)有可能刪除該綁定的函數(shù),則必須傳函數(shù)名。
bind()方法可以通過(guò)鏈?zhǔn)秸{(diào)用的形式連續(xù)多次調(diào)用,進(jìn)而個(gè)同一標(biāo)簽的同一事件(不同事件)添加不同的事件函數(shù)。
on('事件名',fn);
one('事件名',fn);該方法綁定的事件函數(shù)只能被觸發(fā)一次。
unbind();
參數(shù)一:要解綁事件函數(shù)的事件名(如果只傳這一個(gè)參數(shù),則該事件名中綁定的函數(shù)全部解除)。
參數(shù)二:要解除綁定的事件函數(shù)名。
off();
注意:bind()和unbind()在3.0后已經(jīng)被on()和off()取代。
事件簡(jiǎn)寫本質(zhì)就是簡(jiǎn)化給標(biāo)簽添加事件函數(shù)的操作,標(biāo)準(zhǔn)的添加事件方法:on/bind/one,類似于js的DOM2級(jí)添加事件函數(shù)操作;事件簡(jiǎn)寫類似于DOM0級(jí)的事件綁定操作。
jq事件簡(jiǎn)寫綁定事件函數(shù)的技術(shù)實(shí)現(xiàn)原理:
1、jq給每一個(gè)事件名定義了同名的函數(shù),用戶調(diào)用的事件簡(jiǎn)寫形式,就是在調(diào)用這個(gè)和事件名同名的函數(shù)
2、同名函數(shù)內(nèi)部實(shí)現(xiàn)原理:當(dāng)用戶調(diào)用了該函數(shù),首先獲取該函數(shù)的函數(shù)名(函數(shù)名代表的是事件名),在函數(shù)內(nèi)部通過(guò)on把通過(guò)參數(shù)傳進(jìn)來(lái)的函數(shù)綁定在函數(shù)名對(duì)應(yīng)的事件上。
blur(fn):失去焦點(diǎn)時(shí)觸發(fā)該方法。
focus(fn):當(dāng)鼠標(biāo)或tab按鈕讓元素獲得焦點(diǎn)時(shí),觸發(fā)該函數(shù)。
change(fn):表單元素失去焦點(diǎn)(單選框、復(fù)選框、下拉菜單標(biāo)簽被選中即可觸發(fā),不需等待失去焦點(diǎn)),觸發(fā)該事件。
click(fn):鼠標(biāo)點(diǎn)擊時(shí)觸發(fā)該事件。
dbclick(fn):雙擊元素時(shí)觸發(fā)該事件(注意:把click和dbclick用于同一個(gè)元素會(huì)產(chǎn)生問(wèn)題)。
$(window).scroll(fn):當(dāng)頁(yè)面滾動(dòng)時(shí)觸發(fā)事件。
hover(fn1,fn2):鼠標(biāo)移入觸發(fā)fn1函數(shù),鼠標(biāo)移出觸發(fā)fn2函數(shù)。
復(fù)合事件:toggle().在1.8之前中,復(fù)合了奇、偶次點(diǎn)擊事件,在1.9之后的版本中toggle方法用于jq的動(dòng)畫
toggle()方法在1.8之前的版本中需要兩個(gè)函數(shù)類型作為參數(shù),奇數(shù)次點(diǎn)擊觸發(fā)第一個(gè)函數(shù),偶數(shù)次店家觸發(fā)第二個(gè)函數(shù)。
事件對(duì)象的獲?。涸谑录|發(fā)的函數(shù)中傳遞event參數(shù)。
event.type:事件類型
event.target:觸發(fā)事件的元素
e.currentTarget:事件綁定在哪個(gè)元素上
event.pageX:鼠標(biāo)相對(duì)于文檔的左側(cè)坐標(biāo)
event.pageY:鼠標(biāo)相對(duì)于文檔的頂部坐標(biāo)
e.preventDefault():取消標(biāo)簽事件,如a標(biāo)簽的頁(yè)面跳轉(zhuǎn)。
e.stopPropagation():阻止事件冒泡
1、阻止事件冒泡
stopPropagation()方法
2、阻止默認(rèn)行為
preventDefault()方法
注意:1、return false 在jQuery中是即阻止事件冒泡又阻止默認(rèn)行為
2、jQuery不支持事件捕獲
解密jQuery事件核心:
jquery基礎(chǔ)事件,包括綁定事件、簡(jiǎn)寫事件、復(fù)合事件;
一.綁定事件
jQuery 通過(guò).bind()方法來(lái)為元素綁定這些事件。
形式:
bind(type, [data], fn)
參數(shù):
type 表示一個(gè)或多個(gè)類型的事件名字符串;
[data]是可選的,作為 event.data 屬性值傳遞一個(gè)額外的數(shù)據(jù),這個(gè)數(shù)據(jù)是一個(gè)字符串、一個(gè)數(shù)字、一個(gè)數(shù)組或一個(gè)對(duì)象;
fn 表示綁定到指定元素的處理函數(shù)。
二、簡(jiǎn)寫事件
為了使開發(fā)者更加方便的綁定事件,jQuery 封裝了常用的事件以便節(jié)約更多的代碼。 稱之為簡(jiǎn)寫事件。簡(jiǎn)寫事件,綁定方法如下圖,
三、復(fù)合事件
jQuery 提供了許多最常用的事件效果, 組合一些功能實(shí)現(xiàn)了一些復(fù)合事件, 比如切換功?能、智能加載等。
擴(kuò)展資料
1、綁定事件fn函數(shù)
1)使用點(diǎn)擊事件
$('input').bind('click', function () {//點(diǎn)擊按鈕后執(zhí)行匿名函數(shù)
alert('點(diǎn)擊!');
});
2)普通處理函數(shù)
$('input').bind('click', fn); //執(zhí)行普通函數(shù)式無(wú)須圓括號(hào)
function fn() {
alert('點(diǎn)擊!');
}
2、簡(jiǎn)寫事件函數(shù)
1).mouseover()和.mouseout()表示鼠標(biāo)移入和移出的時(shí)候觸發(fā)。而.mouseenter()和.mouseleave()表示鼠標(biāo)穿過(guò)和穿出的時(shí)候觸發(fā)。
2).keydown()、.keyup()返回的是鍵碼,而.keypress()返回的是字符編碼。
3).focus()和.blur()分別表示光標(biāo)激活和丟失,事件觸發(fā)時(shí)機(jī)是當(dāng)前元素。而.focusin()和.focusout()也表示光標(biāo)激活和丟失,但事件觸發(fā)時(shí)機(jī)可以是子元素。
3、復(fù)合事件示例,背景移入移出切換效果
$('div').hover(function () {
$(this).css('background', 'black');? ? ?//mouseenter 效果
}, function () {
$(this).css('background', 'red');? ? ? //mouseleave 效果,可省略
});
參考資料
jQuery官方網(wǎng)站-事件
什么是事件冒泡:在一個(gè)對(duì)象上觸發(fā)某類事件(比如onclick事件),如果次對(duì)象定義了此事件的處理程序,那么此事件就會(huì)調(diào)用這個(gè)處理程序,如果沒(méi)有定義此事件處理程序或者事件返回true,那么這個(gè)事件會(huì)向這個(gè)對(duì)象的父級(jí)對(duì)象傳播,從里到外,直至它被處理(父級(jí)對(duì)象所有同類事件都將被激活),或者它到達(dá)了對(duì)象層次的最頂層,即document對(duì)象(有些瀏覽器是window)。
事件冒泡的作用:事件冒泡允許多個(gè)操作被集中處理(把事件處理器添加到一個(gè)父級(jí)元素上,避免把事件處理器添加到多個(gè)子級(jí)元素上),它還可以讓你在對(duì)象層的不同級(jí)別捕獲事件。
阻止事件冒泡:事件冒泡機(jī)制有時(shí)候是不需要的,需要阻止掉,通過(guò) event.stopPropagation() 來(lái)阻止
$(function(){
})
代合并阻止操作:實(shí)際開發(fā)中,一般把阻止冒泡和阻止默認(rèn)行為合并起來(lái)寫,合并寫法可以用.
// event.stopPropagation();
// event.preventDefault();
// 合并寫法:
return false;
事件委托就是利用冒泡的原理,把事件加到父級(jí)上,通過(guò)判斷事件來(lái)源的子集,執(zhí)行相應(yīng)的操作,事件委托首先可以極大減少事件綁定次數(shù),提高性能;其次可以讓新加入的子元素也可以擁有相同的操作。
一般綁定事件的寫法:bind
事件委托的寫法:
如果我們要取消事件的委托:
//ev.delegateTarge 委托的對(duì)象
$(ev.delegateTarge).undelegatee();
//如果是上面的兩種例子可使用//$list.undelegate();
創(chuàng)建節(jié)點(diǎn): ('div')
var ('div這是一個(gè)div元素/div');
插入節(jié)點(diǎn):
1、append()和appendTo():在現(xiàn)存元素的內(nèi)部,從后面插入元素
2、prepend()和prependTo():在現(xiàn)存元素的內(nèi)部,從前面插入元素
3、after()和insertAfter():在現(xiàn)存元素的外部,從后面插入元素
4、before()和insertBefore():在現(xiàn)存元素的外部,從前面插入元素
刪除節(jié)點(diǎn)
$('#div1').remove();
用jquery寫一個(gè)事件的操作如下:
1、用confirm輸入以下代碼:
if(confirm("確定要?jiǎng)h除數(shù)據(jù)嗎"))
{
}else{
}
2、用組件jBox(需要下載jquery.jBox-2.3.min.js,并引入)
$.jBox.confirm("您確定要?jiǎng)h除此委托嗎?", "提示", function(v, h, f)
{
if (v == "ok")
{
}else{
}
});
事件方法會(huì)觸發(fā)匹配元素的事件,或?qū)⒑瘮?shù)綁定到所有匹配元素的某個(gè)事件。
bind()????向匹配元素附加一個(gè)或更多事件處理器????
blur()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?blur?事件????
change()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?change?事件????
click()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?click?事件????
dblclick()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?double?click?事件????
delegate()????向匹配元素的當(dāng)前或未來(lái)的子元素附加一個(gè)或多個(gè)事件處理器????
die()????移除所有通過(guò)?live()?函數(shù)添加的事件處理程序。????
error()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?error?事件????
event.isDefaultPrevented()????返回?event?對(duì)象上是否調(diào)用了?event.preventDefault()。????
event.pageX????相對(duì)于文檔左邊緣的鼠標(biāo)位置。????
event.pageY????相對(duì)于文檔上邊緣的鼠標(biāo)位置。????
event.preventDefault()????阻止事件的默認(rèn)動(dòng)作。????
event.result????包含由被指定事件觸發(fā)的事件處理器返回的最后一個(gè)值。????
event.target????觸發(fā)該事件的?DOM?元素。????
event.timeStamp????該屬性返回從?1970?年?1?月?1?日到事件發(fā)生時(shí)的毫秒數(shù)。????
event.type????描述事件的類型。????
event.which????指示按了哪個(gè)鍵或按鈕。????
focus()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?focus?事件????
keydown()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?key?down?事件????
keypress()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?key?press?事件????
keyup()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?key?up?事件????
live()????為當(dāng)前或未來(lái)的匹配元素添加一個(gè)或多個(gè)事件處理器????
load()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?load?事件????
mousedown()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?mouse?down?事件????
mouseenter()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?mouse?enter?事件????
mouseleave()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?mouse?leave?事件????
mousemove()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?mouse?move?事件????
mouseout()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?mouse?out?事件????
mouseover()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?mouse?over?事件????
mouseup()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?mouse?up?事件????
one()????向匹配元素添加事件處理器。每個(gè)元素只能觸發(fā)一次該處理器。????
ready()????文檔就緒事件(當(dāng)?HTML?文檔就緒可用時(shí))????
resize()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?resize?事件????
scroll()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?scroll?事件????
select()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?select?事件????
submit()????觸發(fā)、或?qū)⒑瘮?shù)綁定到指定元素的?submit?事件????
toggle()????綁定兩個(gè)或多個(gè)事件處理器函數(shù),當(dāng)發(fā)生輪流的?click?事件時(shí)執(zhí)行。????
trigger()????所有匹配元素的指定事件????
triggerHandler()????第一個(gè)被匹配元素的指定事件????
unbind()????從匹配元素移除一個(gè)被添加的事件處理器????
undelegate()????從匹配元素移除一個(gè)被添加的事件處理器,現(xiàn)在或?qū)?lái)????
unload()
網(wǎng)頁(yè)名稱:事件jQuery,事件簡(jiǎn)單的情況說(shuō)明的范文
標(biāo)題來(lái)源:http://jinyejixie.com/article8/dssojop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站建設(shè)、ChatGPT、小程序開發(fā)、網(wǎng)站收錄、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)