如何理解jQuery對(duì)相關(guān)控件的事件操作

如何理解jQuery對(duì)相關(guān)控件的事件操作,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

渝北網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

今天突然對(duì)他的事件產(chǎn)生了興趣,先前也碰到過,也沒整理,今天有空就弄一下咯。

對(duì)于控件的事件,jQuery已經(jīng)提供了豐富的方法,包括綁定、一次綁定、觸發(fā)等,阿拉今早看看叫一哪能用額伐,大蝦路古就可以了。

jQuery的綁定事件非常方便,有bind、live、one還有它幫你把一些常用的事件給單獨(dú)了出來,比如控件的onclick事件,我們綁定onclick事件的時(shí)候只需要

$("#testButton").click(function() {      alert("I'm Test Button");  });

就這樣我們?cè)趖estButton這個(gè)按鈕上綁定了onclick事件,執(zhí)行alert語句。我們也可以使用$("#testButton").click();來觸發(fā)這個(gè)onclick事件,一切都非常ok啦。以上有點(diǎn)sb了,接下來看看取消事件。jQuery有unbind的方法,專門來取消綁定的,也就是取消事件,按照上面的例子的話,應(yīng)該使用:$("#testButton").unbind("click");恩,看上去非常好,如果你的click有2個(gè)事件的話,你還可以使用unbind("click", fnName)來刪除特定函數(shù)的綁定。為什么有這個(gè)取消特定函數(shù)的方法呢,我們來看下例子,我們會(huì)發(fā)現(xiàn),javascript的事件,跟C#的事件如出一轍,事件的綁定是疊加(+=) 而不是覆蓋。   

var Eat = function() {          alert("我要吃飯");      }       var PayMoney = function() {          alert("先付錢");      }       jQuery(document).ready(function() {          $("#testButton").click(Eat);          $("#testButton").bind("click", PayMoney);      });

通過上面的例子,我們發(fā)現(xiàn)會(huì)先彈出:“我要吃飯”緊接著會(huì)彈出“先付錢”,說明它的綁定是通過onclick+=fn進(jìn)行的。我們修改下ready的方法:      

jQuery(document).ready(function() {             $("#testButton").click(Eat);             $("#testButton").unbind();             $("#testButton").bind("click", PayMoney);         });

又出錯(cuò)了,呵呵,這次點(diǎn)擊按鈕的話,只會(huì)執(zhí)行PayMoney,不會(huì)執(zhí)行Eat,那如果把unbind()放在bind后面的話,這樣這個(gè)按鈕就不會(huì)起作用了。但如果我要去掉綁定的PayMoney方法呢?這時(shí)候我們應(yīng)該這樣寫:     

jQuery(document).ready(function() {            $("#testButton").click(Eat);            $("#testButton").bind("click", PayMoney);            $("#testButton").unbind("click", PayMoney);        });

嘿嘿,跟bind其實(shí)一個(gè)樣,不過接下來你將看到一個(gè)bug(我不知道算不算),讓我們近距離體驗(yàn)一下

:<input id="testButton" type="button" value="Test Button" onclick="Eat();" /> <script type="text/javascript">         jQuery(document).ready(function() {              $("#testButton").unbind("click", Eat);              $("#testButton").unbind();              $("#testButton").bind("click", PayMoney);          });  </script>

大家猜猜,會(huì)顯示什么?吃飯?付錢?答案是Eat -> PayMoney,?。。。∥疫@里取消了綁定,又刪除了特定的綁定,為什么還會(huì)執(zhí)行Eat呢?其中的原由要看jQuery的類庫了,我估計(jì)它只刪除了通過JQuery綁定的那些事件了,呵呵。那這時(shí)候我們?cè)撊绾文??好在jQuery有很多方法,其中一個(gè)就是attr,他是對(duì)Dom元素的屬性進(jìn)行操作,我們利用attr來消除input上的click事件。    $("#testButton").attr("onclick", "");這樣就可以把onclick事件清除了,記住,attr上因?yàn)槭窃氐膶傩?,所以這里要寫 “onclick” 而不是click,因?yàn)閏lick是jQuery封裝好的簡(jiǎn)寫方式。好了,綁定就到這里了,弄個(gè)場(chǎng)景,大家也好記得住點(diǎn):一日,老應(yīng)、老趙、老陳出去吃飯,吃飽了,喝足了,準(zhǔn)備付錢了,這時(shí)候

:<head>      <script type="text/javascript" src="jquery-1.2.6.min.js"></script>      <script type="text/javascript">          var PayMoney = function(name) {              alert(name + ":今天我請(qǐng)客,我來付錢");          }           jQuery(document).ready(function() {              $("#JeffreyPay").attr("onclick", "");              $("#JamesPay").attr("onclick", "");               $("#JeffreyPay").click(function() {                  alert("。。。。這里不能刷卡");              });               $("#JeffreyPay").click(function() {                  PayMoney("陳大");              });              $("#JamesPay").bind("click", function() {                  alert("。。。。忘記帶錢包了");              });              $("#JamesPay").bind("click", $("#DlyingPay").attr("onclick"));          });      </script>  </head> <body>     <input id="JeffreyPay" onclick="PayMoney('趙帥');" type="button" value="老趙付錢" />     <input id="JamesPay" type="button" onclick="PayMoney('老應(yīng)');" value="老應(yīng)付錢" />     <input id="DlyingPay" type="button" onclick="PayMoney('陳大');" value="老陳付錢" /> </body>

看完上述內(nèi)容,你們掌握如何理解jQuery對(duì)相關(guān)控件的事件操作的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站名稱:如何理解jQuery對(duì)相關(guān)控件的事件操作
分享URL:http://muchs.cn/article14/iepide.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、云服務(wù)器、服務(wù)器托管、關(guān)鍵詞優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)