国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 擴展 > jQuery > 正文

jQuery 綁定事件的方式總結

2024-09-06 20:04:48
字體:
來源:轉載
供稿:網友

  jQuery 綁定事件

jQuery提供了多種綁定事件的方式,每種方式各有其特點,明白了它們之間的異同點,有助于我們在寫代碼的時候進行正確的選擇,從而寫出優雅而容易維護的代碼。下面我們來看下jQuery中綁定事件的方式都有哪些。

     jQuery中提供了四種事件監聽方式,分別是bind、live、delegate、on,對應的解除監聽的函數分別是unbind、die、undelegate、off。在開始看他們之前

    一:bind(type,[data],function(eventObject))

      bind是使用頻率較高的一種,作用就是在選擇到的元素上綁定特定事件類型的監聽函數,參數的含義如下:

      type:事件類型,如click、change、mouseover等;

      data:傳入監聽函數的參數,通過event.data取到。可選;

     function:監聽函數,可傳入event對象,這里的event是jQuery封裝的event對象,與原生的event對象有區別,使用時需要注意

   bind的源碼:

bind: function( types, data, fn ) { return this.on( types, null, data, fn ); } $('#myol li').bind('click',getHtml);

bind的特點就是會把監聽器綁定到目標元素上,有一個綁一個,在頁面上的元素不會動態添加的時候使用它沒什么問題。但如果列表中動態增加一個“列表元素5”,點擊它是沒有反應的,必須再bind一次才行。要想不這么麻煩,我們可以使用live。

jQuery還有一種事件綁定的簡寫方式如a.click(function(){});、a.change(function(){});等,它們的作用與bind一樣,僅僅是簡寫而已。

二:live(type, [data], fn)

live的參數和bind一樣,它又有什么蹊蹺呢,我們還是先瞄一眼源碼:

live: function( types, data, fn ) { jQuery( this.context ).on( types, this.selector, data, fn ); return this; }

 可以看到live方法并沒有將監聽器綁定到自己(this)身上,而是綁定到了this.context上了。這個context是什么東西呢?其實就是元素的限定范圍,看了下面的代碼就清楚了:

$('#myol li').context; //document $('#myol li','#myol').context; //document $('#myol li',$('#myol')[0]); //ol

通常情況下,我們都不會像第三種方式那樣使用選擇器,所以也就認為這個context通常就是document了,即live方法把監聽器綁定到了 document上了。不把監聽器直接綁定在元素上,你是不是想起事件委托機制來了呢?若沒有,可以點擊這里回憶一下。live正是利用了事件委托機制來 完成事件的監聽處理,把節點的處理委托給了document。在監聽函數中,我們可以用event.currentTarget來獲取到當前捕捉到事件的 節點。下面的例子來揭曉:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潞西市| 株洲县| 南平市| 临邑县| 汕头市| 景德镇市| 仙桃市| 普兰县| 三都| 长治县| 汝南县| 威远县| 崇州市| 毕节市| 剑川县| 邻水| 贡山| 会昌县| 闻喜县| 米泉市| 安陆市| 阿鲁科尔沁旗| 茂名市| 乌恰县| 高淳县| 灵山县| 台中市| 绥中县| 芜湖县| 清新县| 郸城县| 池州市| 夏邑县| 禹城市| 新乐市| 荆门市| 大竹县| 广河县| 兴化市| 西峡县| 玉山县|