一、作用不同
成都創新互聯是一家專注于網站設計、成都網站建設與策劃設計,新市網站建設哪家好?成都創新互聯做網站,專注于網站建設10多年,網設計領域的專業建站公司;建站業務涵蓋:新市等地區。新市做網站價格咨詢:028-86922220
1、on():在被選元素及子元素上添加一個或多個事件處理程序。
2、live():為被選元素附加一個或多個事件處理程序,并規定當這些事件發生時運行的函數。
二、觸發條件不同
1、on():使用 on() 方法添加的事件處理程序適用于當前及未來的元素(比如由腳本創建的新元素)。
2、live():通過 live() 方法附加的事件處理程序適用于匹配選擇器的當前及未來的元素(比如由腳本創建的新元素)。
三、語法不同
1、on():$(selector).on(event,childSelector,data,function)childSelector可選。規定只能添加到指定的子元素上的事件處理程序(且不是選擇器本身,比如已廢棄的 delegate() 方法)。
2、live():$(selector).live(event,data,function),其中event必需。規定附加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。
參考資料來源:百度百科-jQuery
概述
1、#Grid1Table不是#conut的父節點,p標簽是#logout的父節點
2、代碼寫法:
$('p').on('click', '#count', function() {
//function code here.
});
解析
1、p包裹a標簽(id = logout),所以logout的父節點(父標簽)為p(沒有標注id或者class)
pa href='#' id='logout'【退出】/a/p
2、$("#logout").on('click',function() 方法要求參數為非隨動變量(全局變量),所以#logout為不可行參數,且由于代碼沒有貼全所以這里我先斷定#Grid1Table為非父節點,而p為#logout父節點,所以這里可以改成:
$('p').on('click', '#count', function() {
//function code here.
});
拓展內容
juqery on()方法詳解
定義和用法
on() 方法在被選元素及子元素上添加一個或多個事件處理程序。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。該方法給 API 帶來很多便利,我們推薦使用該方法,它簡化了 jQuery 代碼庫。
注意:使用 on() 方法添加的事件處理程序適用于當前及未來的元素(比如由腳本創建的新元素)。
提示:如需移除事件處理程序,請使用?off()?方法。
提示:如需添加只運行一次的事件然后移除,請使用?one()?方法。
語法
$(selector).on(event,childSelector,data,function)
參數
event ? ?????????????必需。規定要從被選元素移除的一個或多個事件或命名空間。由空格分隔多個事件值,也可以是數組。必須是有效的事件。 ?
childSelector ? ?可選。規定只能添加到指定的子元素上的事件處理程序(且不是選擇器本身,比如已廢棄的 delegate() 方法)。 ?
data ? ?????????????? 可選。規定傳遞到函數的額外數據。 ?
function ? ?????????可選。規定當事件發生時運行的函數。 ?
.on()方法事件處理程序到當前選定的jQuery對象中的元素。
.on( events [, selector ] [, data ], handler(eventObject) )
events:類型: String
一個或多個空格分隔的事件類型和可選的命名空間,或僅僅是命名空間,比如"click", "keydown.myPlugin", 或者 ".myPlugin"。
selector:類型: String
一個選擇器字符串,用于過濾出被選中的元素中能觸發事件的后代元素。如果選擇器是 null 或者忽略了該選擇器,那么被選中的元素總是能觸發事件。
data:類型: Anything
當一個事件被觸發時,要傳遞給事件處理函數的event.data。
handler(eventObject):類型: Function()
事件被觸發時,執行的函數。若該函數只是要執行return false的話,那么該參數位置可以直接簡寫成 false。
jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup contextmenu" ).split( " " ),
function( i, name ) {
// Handle event binding
jQuery.fn[ name ] = function( data, fn ) {
return arguments.length 0 ?
this.on( name, null, data, fn ) :
this.trigger( name );
};
} );
jQuery中用on來綁定事件,常用寫法
兩種寫法哪個更好?
1. $(document).on 將事件委托document, $('#idname').on 將事件綁定到.className元素上。每次document有點擊動作,瀏覽器都會判斷當前點擊的對象。如果匹配再決定要不要執行,多了個判斷環節。JS渲染效率很高,所以此異同基本可以忽略。
2. $("className").on 為onclick綁定,只有在頁面onload時執行一次。頁面刷新后,新加載的具有className的元素便沒有事件綁定到上面了。相反$(document).on這種方法會刷新和重新賦予綁定操作,所以一定程度上更為全面。
//頁面載入函數,寫一個就可以了
jQuery(function($){
...略
$("body").delegate("#demo-list?li",?"click",?function(){
$(this).addClass("active").siblings("li").removeClass("active");
});
...略
});
標題名稱:jquery$.on,jqueryonclick事件的用法
轉載來于:http://m.newbst.com/article14/dssspde.html
成都網站建設公司_創新互聯,為您提供定制網站、標簽優化、Google、自適應網站、建站公司、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯