亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

jQuery綁定事件方法及區(qū)別(bind,click,on,live,one)

 更新時間:2017年08月14日 16:37:30   作者:Lemon_code  
這篇文章主要介紹了jq綁定事件方法及區(qū)別,通過五種綁定方式使用bind()進行操作,并和one()進行區(qū)分,需要的朋友可以參考下

第一種方式:

$(document).ready(function(){
 $("#clickme").click(function(){
 alert("hello world click")
 })
})

第二種方式(簡寫方式為第一種):

$('#clickmebind').bind("click", function(){
 alert("Hello World bind");
});

第三種方式:

$('#clickmeon').on("click",function(){
 alert("hello world on")
}) 

注意:第三種方式只適用于jquery 1.7以上的版本

第四種方式:

$("button").live("click",function(){
 $("p").slideToggle();
});

第五種方式:

$("div").delegate("button","click",function(){
 $("p").slideToggle();
});

如果只綁定一次事件,那接著用one()吧,這個沒有變化。

$(document).ready(function(){
  $("p").one("click",function(){
    $(this).animate({fontSize:"+=6px"});
  });
});

下面就來了解下它們之間的區(qū)別

bind(type,[data],fn) 為每個匹配元素的特定事件綁定事件處理函數
$(“a”).bind(“click”,function(){alert(“ok”);});

live(type,[data],fn) 給所有匹配的元素附加一個事件處理函數,即使這個元素是以后再添加進來的
$(“a”).live(“click”,function(){alert(“ok”);});

delegate(selector,[type],[data],fn) 指定的元素(屬于被選元素的子元素)添加一個或多個事件處理程序,并規(guī)定當這些事件發(fā)生時運行的函數
$(“#container”).delegate(“a”,”click”,function(){alert(“ok”);})

on(events,[selector],[data],fn) 在選擇元素上綁定一個或多個事件的事件處理函數

最大的差別:bind()的事件函數只能針對已經存在的元素進行事件的設置。如果你想對動態(tài)創(chuàng)建的元素bind()事件,是沒有辦法達到效果的,但是live(),on(),delegate()均支持未來新添加元素的事件設置。

.bind()是直接綁定在元素上()
jquery1.7版本以前比較受推崇,1.7版本出來之后,官方已經不推薦用bind(),替代函數為on(),這也是1.7版本新添加的函數,同樣,可以用來代替live()函數,live()函數在1.9版本已經刪除;

.delegate()則是更精確的小范圍使用事件代理,性能優(yōu)于.live()(在Jquery1.7中已經移除)

.live()則是通過冒泡的方式來綁定到元素上的。更適合列表類型的,綁定到document
DOM節(jié)點上。和.bind()的優(yōu)勢是支持動態(tài)數據。(在Jquery1.7中已經移除,相應die()也移除)

live()函數和delegate()函數兩者類似,但是live()函數在執(zhí)行速度,靈活性和CSS選擇器支持方面較delegate()差些

.on()則是最新的1.9版本整合了之前的三種方式的新事件綁定機制(在Jquery1.7中添加,相應off()也添加)

jquery1.4 及之前的版本,由.click() 或 bind()方法綁定的事件,不能適用腳本創(chuàng)建的新元素:即是說頁面加載完成后,再動態(tài)創(chuàng)建的DOM元素并不能響應之前綁定的事件!

舊版本的處理方法是使用.live()方法來代替事件綁定.bind(),使得綁定的事件能適用腳本創(chuàng)建的新元素。

但自jq1.7版本開始,官方已明文表示不再推薦使用使用.live()方法,官方解釋為:live()調用過程首先將事件方法綁定到了Document,然后,查找Document里是否有匹配元素。
這個過程對于性能來說可能比較浪費。官方推薦將.live()改成Delegate()方法,適用腳本創(chuàng)建的新元素。

jq1.8開始,官方又再次申明:如果你開發(fā)最新版本的jQuery,完全可以使用on()方法來處理所有的事件綁定,避免過多的方法調用,因為其實在最新版本的jQuery類庫中,所有以上舊版方法在后面其實都是調用on()方法。

總結

jQuery推出on()的目的有2個,一是為了統一接口,二是為了提高性能,所以從現在開始用on()替換bind(), live(), delegate吧。

以上就是小編為大家整理的jq綁定事件方法及區(qū)別的全部內容啦~希望大家繼續(xù)支持腳本之家~

相關文章

  • 基于jQuery實現響應式圓形圖片輪播特效

    基于jQuery實現響應式圓形圖片輪播特效

    這篇文章主要介紹了基于jQuery實現響應式圓形圖片輪播特效,mislider插件可以將圖片以圓形圖片顯示,然后使圖片無限循環(huán)形成輪播圖或旋轉木馬特效,感興趣的小伙伴們可以參考一下
    2015-11-11
  • jQuery zTree 異步加載添加子節(jié)點重復問題

    jQuery zTree 異步加載添加子節(jié)點重復問題

    zTree 是一個依靠 jQuery 實現的多功能 “樹插件”。下面通過本文給大家分享jQuery zTree 異步加載添加子節(jié)點重復問題,需要的朋友參考下吧
    2017-11-11
  • JQuery學習總結【二】

    JQuery學習總結【二】

    本文主要介紹了JQuery的基本知識,如:JQuery的dom操作,動態(tài)創(chuàng)建dom節(jié)點,刪除節(jié)點,document方法等等,文章篇尾處附上實例小練習。需要的朋友可以參考下
    2016-12-12
  • jquery實現簡單的拖拽效果實例兼容所有主流瀏覽器(優(yōu)化篇)

    jquery實現簡單的拖拽效果實例兼容所有主流瀏覽器(優(yōu)化篇)

    相對于上一篇,優(yōu)化了拖拽的效果,具體的代碼及截圖如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-06-06
  • 基于Jquery的仿照flash放大圖片效果代碼

    基于Jquery的仿照flash放大圖片效果代碼

    基于Jquery的仿照flash放大圖片效果代碼,需要的朋友可以參考下。
    2011-03-03
  • JQuery性能優(yōu)化的幾點建議

    JQuery性能優(yōu)化的幾點建議

    針對jquery性能優(yōu)化這個主題,想必大家都有所了解。下面是我搜集點一點資料關于jquery性能優(yōu)化,大家可以參考參考。
    2014-05-05
  • jQuery實現伸展與合攏panel的方法

    jQuery實現伸展與合攏panel的方法

    這篇文章主要介紹了jQuery實現伸展與合攏panel的方法,可實現操作div層的平滑收縮與展開的功能,涉及jQuery中next、slideUp、slideDown等方法的使用技巧,非常簡單實用,需要的朋友可以參考下
    2015-04-04
  • jQuery的實現原理的模擬代碼 -4 重要的擴展函數 extend

    jQuery的實現原理的模擬代碼 -4 重要的擴展函數 extend

    在上兩篇文章中,我們看到每次要通過 jQuery 的原型增加共享方法的時候,都需要通過 jQuery.fn 一個個進行擴展,非常麻煩.
    2010-08-08
  • 基于jQuery選擇器之表單對象屬性篩選選擇器的實例

    基于jQuery選擇器之表單對象屬性篩選選擇器的實例

    下面小編就為大家?guī)硪黄猨Query選擇器之表單對象屬性篩選選擇器實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • jqPlot jquery的頁面圖表繪制工具

    jqPlot jquery的頁面圖表繪制工具

    可能是個人認識能力有限,一直認為僅僅靠html是很難展現稍具動態(tài)的圖表的,但是在看到jqPlot之后,我的認識有了很大改變,jqplpt——基于HTML的圖表展示插件,而且不生成圖片,最可貴的是能生成類似flex的數據動態(tài)提示以及動態(tài)改變數據展示范圍等等。
    2009-07-07

最新評論