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

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 13:12:24
字體:
來源:轉載
供稿:網友

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

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

二、jQuery on()方法的優點:
 
1、提供了一種統一綁定事件的方法

2、仍然提供了.delegate()的優點,當然如果需要你也可以直接用.bind()

三、與.bind(), .live(), .delegate()的比較:
 
1、其實.bind(), .live(), .delegate()都是通過.on()來實現的

復制代碼 代碼如下:
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()的代價是非常大的,它會把相同的一個事件處理程序hook到所有匹配的DOM元素上

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

4、.delegate()會提供很好的方法來提高效率,同時我們可以添加一事件處理方法到動態添加的元素上。

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

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

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

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

2、多個事件綁定同一個函數

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

3、多個事件綁定不同函數

復制代碼 代碼如下:
$(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、綁定自定義事件

復制代碼 代碼如下:
$(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、傳遞數據到函數

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

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

6、適用于未創建的元素

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

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博罗县| 久治县| 方山县| 利津县| 潼南县| 重庆市| 新蔡县| 中超| 江西省| 唐海县| 青岛市| 名山县| 乌海市| 闸北区| 依兰县| 嘉定区| 玉门市| 鄂温| 垣曲县| 安多县| 云梦县| 北辰区| 广汉市| 朝阳区| 锡林浩特市| 咸阳市| 江都市| 广安市| 新和县| 察雅县| 通城县| 安远县| 阜南县| 修武县| 德庆县| 锡林郭勒盟| 文山县| 乌拉特后旗| 理塘县| 鄱阳县| 屯门区|