最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery中on()方法用法實(shí)例詳解

 更新時(shí)間:2015年02月06日 15:34:07   作者:whazhl  
這篇文章主要介紹了jQuery中on()方法用法,實(shí)例分析了on()方法的功能及各種常見(jiàn)的使用技巧,并對(duì)比分析了與bind(),live(),delegate()等方法的區(qū)別,需要的朋友可以參考下

本文實(shí)例分析了jQuery on()方法的用法。分享給大家供大家參考。具體分析如下:

一、jQuery on()方法的使用:
 
on(events,[selector],[data],fn)
 
events:一個(gè)或多個(gè)用空格分隔的事件類型和可選的命名空間,如"click"或"keydown.myPlugin" 。
selector:一個(gè)選擇器字符串用于過(guò)濾器的觸發(fā)事件的選擇器元素的后代。如果選擇器為null或省略,當(dāng)它到達(dá)選定的元素,事件總是觸發(fā)。
data:當(dāng)一個(gè)事件被觸發(fā)時(shí)要傳遞event.data給事件處理函數(shù)。
fn:該事件被觸發(fā)時(shí)執(zhí)行的函數(shù)。 false 值也可以做一個(gè)函數(shù)的簡(jiǎn)寫(xiě),返回false。

二、jQuery on()方法的優(yōu)點(diǎn):
 
1、提供了一種統(tǒng)一綁定事件的方法

2、仍然提供了.delegate()的優(yōu)點(diǎn),當(dāng)然如果需要你也可以直接用.bind()

三、與.bind(), .live(), .delegate()的比較:
 
1、其實(shí).bind(), .live(), .delegate()都是通過(guò).on()來(lái)實(shí)現(xiàn)的

復(fù)制代碼 代碼如下:
bind: function( types, data, fn ) {
        return this.on( types, null, data, fn );
    },
    unbind: function( types, fn ) {
        return this.off( types, null, fn );
    },

    live: function( types, data, fn ) {
        jQuery( this.context ).on( types, this.selector, data, fn );
        return this;
    },
    die: function( types, fn ) {
        jQuery( this.context ).off( types, this.selector || "**", fn );
        return this;
    },

    delegate: function( selector, types, data, fn ) {
        return this.on( types, selector, data, fn );
    },
    undelegate: function( selector, types, fn ) {
        // ( namespace ) or ( selector, types [, fn] )
        return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
    }

2、用.bind()的代價(jià)是非常大的,它會(huì)把相同的一個(gè)事件處理程序hook到所有匹配的DOM元素上

3、不要再用.live()了,它已經(jīng)不再被推薦了,而且還有許多問(wèn)題

4、.delegate()會(huì)提供很好的方法來(lái)提高效率,同時(shí)我們可以添加一事件處理方法到動(dòng)態(tài)添加的元素上。

5、我們可以用.on()來(lái)代替上述的3種方法

四、jQuery on()方法的使用示例

1、綁定click事件,使用off()方法移除on()所綁定的方法

復(fù)制代碼 代碼如下:
$(document).ready(function(){
$("p").on("click",function(){
$(this).css("background-color","pink");
});
$("button").click(function(){
$("p").off("click");
});
});

2、多個(gè)事件綁定同一個(gè)函數(shù)

復(fù)制代碼 代碼如下:
$(document).ready(function(){
  $("p").on("mouseover mouseout",function(){
    $("p").toggleClass("intro");
  });
});

3、多個(gè)事件綁定不同函數(shù)

復(fù)制代碼 代碼如下:
$(document).ready(function(){
  $("p").on({
    mouseover:function(){$("body").css("background-color","lightgray");}, 
    mouseout:function(){$("body").css("background-color","lightblue");},
    click:function(){$("body").css("background-color","yellow");} 
  });
});

4、綁定自定義事件

復(fù)制代碼 代碼如下:
$(document).ready(function(){
  $("p").on("myOwnEvent", function(event, showName){
    $(this).text(showName + "! What a beautiful name!").show();
  });
  $("button").click(function(){
    $("p").trigger("myOwnEvent",["Anja"]);
  });
});

5、傳遞數(shù)據(jù)到函數(shù)

復(fù)制代碼 代碼如下:
function handlerName(event)
{
  alert(event.data.msg);
}

$(document).ready(function(){
  $("p").on("click", {msg: "You just clicked me!"}, handlerName)
});

6、適用于未創(chuàng)建的元素

復(fù)制代碼 代碼如下:
$(document).ready(function(){
  $("div").on("click","p",function(){
    $(this).slideToggle();
  });
  $("button").click(function(){
    $("<p>This is a new paragraph.</p>").insertAfter("button");
  });
});

希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

长宁县| 白沙| 祁门县| 济宁市| 晋中市| 巴马| 平潭县| 威海市| 永泰县| 仪征市| 芜湖市| 阜阳市| 专栏| 陇南市| 五指山市| 邹城市| 东山县| 北川| 剑阁县| 含山县| 灵武市| 贺州市| 邹城市| 阿图什市| 定结县| 诏安县| 江安县| 涿州市| 西乌珠穆沁旗| 蚌埠市| 赤水市| 香河县| 阳谷县| 眉山市| 鞍山市| 丰都县| 临泽县| 巴彦淖尔市| 鄂托克旗| 都兰县| 鸡西市|