bind();
在石門等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站 網(wǎng)站設(shè)計制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,石門網(wǎng)站建設(shè)費用合理。
參數(shù)一:要綁定事件函數(shù)的事件名。
參數(shù)二:要綁定的事件函數(shù)(事件函數(shù)名),如果將來有可能刪除該綁定的函數(shù),則必須傳函數(shù)名。
bind()方法可以通過鏈?zhǔn)秸{(diào)用的形式連續(xù)多次調(diào)用,進(jìn)而個同一標(biāo)簽的同一事件(不同事件)添加不同的事件函數(shù)。
on('事件名',fn);
one('事件名',fn);該方法綁定的事件函數(shù)只能被觸發(fā)一次。
unbind();
參數(shù)一:要解綁事件函數(shù)的事件名(如果只傳這一個參數(shù),則該事件名中綁定的函數(shù)全部解除)。
參數(shù)二:要解除綁定的事件函數(shù)名。
off();
注意:bind()和unbind()在3.0后已經(jīng)被on()和off()取代。
事件簡寫本質(zhì)就是簡化給標(biāo)簽添加事件函數(shù)的操作,標(biāo)準(zhǔn)的添加事件方法:on/bind/one,類似于js的DOM2級添加事件函數(shù)操作;事件簡寫類似于DOM0級的事件綁定操作。
jq事件簡寫綁定事件函數(shù)的技術(shù)實現(xiàn)原理:
1、jq給每一個事件名定義了同名的函數(shù),用戶調(diào)用的事件簡寫形式,就是在調(diào)用這個和事件名同名的函數(shù)
2、同名函數(shù)內(nèi)部實現(xiàn)原理:當(dāng)用戶調(diào)用了該函數(shù),首先獲取該函數(shù)的函數(shù)名(函數(shù)名代表的是事件名),在函數(shù)內(nèi)部通過on把通過參數(shù)傳進(jìn)來的函數(shù)綁定在函數(shù)名對應(yīng)的事件上。
blur(fn):失去焦點時觸發(fā)該方法。
focus(fn):當(dāng)鼠標(biāo)或tab按鈕讓元素獲得焦點時,觸發(fā)該函數(shù)。
change(fn):表單元素失去焦點(單選框、復(fù)選框、下拉菜單標(biāo)簽被選中即可觸發(fā),不需等待失去焦點),觸發(fā)該事件。
click(fn):鼠標(biāo)點擊時觸發(fā)該事件。
dbclick(fn):雙擊元素時觸發(fā)該事件(注意:把click和dbclick用于同一個元素會產(chǎn)生問題)。
$(window).scroll(fn):當(dāng)頁面滾動時觸發(fā)事件。
hover(fn1,fn2):鼠標(biāo)移入觸發(fā)fn1函數(shù),鼠標(biāo)移出觸發(fā)fn2函數(shù)。
復(fù)合事件:toggle().在1.8之前中,復(fù)合了奇、偶次點擊事件,在1.9之后的版本中toggle方法用于jq的動畫
toggle()方法在1.8之前的版本中需要兩個函數(shù)類型作為參數(shù),奇數(shù)次點擊觸發(fā)第一個函數(shù),偶數(shù)次店家觸發(fā)第二個函數(shù)。
事件對象的獲?。涸谑录|發(fā)的函數(shù)中傳遞event參數(shù)。
event.type:事件類型
event.target:觸發(fā)事件的元素
e.currentTarget:事件綁定在哪個元素上
event.pageX:鼠標(biāo)相對于文檔的左側(cè)坐標(biāo)
event.pageY:鼠標(biāo)相對于文檔的頂部坐標(biāo)
e.preventDefault():取消標(biāo)簽事件,如a標(biāo)簽的頁面跳轉(zhuǎn)。
e.stopPropagation():阻止事件冒泡
1、阻止事件冒泡
stopPropagation()方法
2、阻止默認(rèn)行為
preventDefault()方法
注意:1、return false 在jQuery中是即阻止事件冒泡又阻止默認(rèn)行為
2、jQuery不支持事件捕獲
解密jQuery事件核心:
p我是一行即將被點擊的p元素/p
$("p").on("click",?function(){alert(?$(this).text()?);});//綁定事件
$("p").off();//解綁所有事件
$("p").off("click");//解綁click事件
你可以在每次綁定之前先解綁原來的事件
$("#img").unbind("mouseout").bind("mouseout",function(){....});
$("#element").click(function(){}); //綁定點擊事件函數(shù)
$("#element").unbind(); //解綁點擊事件
先簡單說下jQuery綁定和解綁點擊事件的方法
$("#element").click(function(){}); //綁定點擊事件函數(shù)
$("#element").unbind(); ? ? ? ?//解綁點擊事件
$("#element").click(function(){}); ?//綁定其它函數(shù)
即,要對一個綁定過點擊事件的元素綁定其它函數(shù),需先對其解綁。
上面的代碼看起來好簡單,但是實際應(yīng)用中卻要復(fù)雜的多。舉一個項目中的實例吧。
兩個顯示標(biāo)簽云的DIV,DIV1顯示選中的標(biāo)簽,DIV2顯示可選的標(biāo)簽。DIV2中的任一個標(biāo)簽被點中后會從DIV2中消失并添加到DIV1中,再在DIV1點擊它時,它又會回到DIV2。兩個DIV中的標(biāo)簽總數(shù)、單個標(biāo)簽的內(nèi)容保持不變。這個效果我花了差不多一個半小時才搞定,就是因為對jQuery綁定和解綁點擊事件理解的不到位。
我最開始的理解是:當(dāng)一個標(biāo)簽從DIV1中移除并添加到DIV2中時,其原來綁定的所有事件都會消失,我可以從DIV2中析取這個標(biāo)簽并給它綁定新的點擊事件。結(jié)果是:再點擊它時它并沒有回到DIV1,而是還是在DIV2中,只是位置被移到了最后。我誤以為這個標(biāo)簽還屬于DIV1,殊不知不是DIV的歸屬問題,而是點擊事件的綁定問題。
直接把onchange這個屬性去掉就好了,removeAttr這個方法,去了解一下
重新聲明一次就好了,比如
document. body. on click = functio () {}
直接空函數(shù)即可