1. 程式人生 > >處理jQuery append加入的元素 繫結事件無效的方法

處理jQuery append加入的元素 繫結事件無效的方法

問題是:通過jQuery append(或者before、after,一樣)新新增進網頁的元素,常用的事件不能觸發,比如:append了id 為 abc 的元素,那麼 $(#abc).click(function(){})是沒有效果的。

1. 網上說要用live()函式,親測無效,應該是jQuery的版本問題,反正到目前為止是不能用了;

2. 解決方法:用on函式,要注意格式(樓主搞了半天,因為格式不對,哎,不說了…都是淚)

         正確格式: $("outerSelector").on('eventType','selector',function(){});
          outerSelector 是一個一直存在的DOM, selector是你要監聽點選的節點;


          所以正確的寫法是(樓主程式碼):$("tbody").on('click',"[name='submitbutton']",function(){....});

OK,搞定!

相關推薦

處理jQuery append加入元素 事件無效方法

問題是:通過jQuery append(或者before、after,一樣)新新增進網頁的元素,常用的事件不能觸發,比如:append了id 為 abc 的元素,那麼 $(#abc).click(function(){})是沒有效果的。 1. 網上說要用live()函式,親

js和jq的dom操作&&append元素事件失效

列數:var td=$("#toptable tr").eq(1).find("td").length;    ps:當第一列是th的時候可以選擇find("th")然後就是弟0行,如果第一列不是th那麼可以直接eq(0)

jQuery給一個元素事件前,一次點選會多次觸發的問題所在

如果在給一個元素繫結事件後,再次繫結事件就會出現多次繫結的情況,此時就會出現多次觸發,解決方法我採用的是,在繫結事件前進行解綁,bind繫結的時間用ubbind解綁,其他繫結方法用對應的解綁方法解綁。

jQuery為動態元素事件的方式

在使用jQuery的方式為元素繫結事件時,我經常使用bind或者click,但這隻能為頁面已經載入好的元素繫結事件。像需要用ajax的方式請求遠端資料來動態新增頁面元素時,顯然以上幾種繫結事件的方式是無效的,具體寫法如下圖。 $(selector).bind(event

jQuery動態新增的元素事件

  今天在做專案是時候發現動態新增的元素不能繫結事件,由於本人js和jquery技術有限,所以也不知道原因,一查才知道,動態新增的元素繫結事件就會失效,所以修改了一下。 jquery中繫結事件一般使用bind,或者click,但是這隻能是對已經載入好的元素定義事件,那些後來新增插入

41. jQuery-使用unbind()方法移除元素事件

1.效果圖 2.html程式碼 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>41. jQuery-使用unbind()方法移出元

jquery html 動態新增元素事件

由於實際的需要,有時需要往網頁中動態的插入HTML內容,並在插入的節點中繫結事件處理函式。我們知道,用Javascript向HTML文件中 插入內容,有兩種方法, 一種是在寫HTML程式碼寫入JS,然後插入到文件中; 另外一種是通過ajax的方式,從伺服器獲取資料,然

從零開始學 Web 之 jQuery(五)操作元素其他屬性,為元素事件

一、操作元素的寬和高 1、方法一 元素.css("width"); 元素.css("height"); 最後得到的是字串型別的,比如 200px。 如果我們在設定為原來寬高2倍的時候,就要先把獲取的寬高轉換成數字型別,再乘以2,這樣操作比較麻煩,有沒有簡單的方法呢? 2、方法二 元素.width(屬性

jQuery-為動態新增的元素事件(以及不重複新增新的內容)

在使用jQuery的方式為元素繫結事件時,我經常使用bind或者click,但這隻能為頁面已經載入好的元素繫結事件。像需要用ajax的方式請求遠端資料來動態新增頁面元素時,顯然以上幾種繫結事件的方式是無效的 $(selector).bind(event,d

利用jquery給動態載入的元素事件

工作中經常會遇見利用ajax載入dom元素,這樣就不能給動態載入的元素繫結時間 此時可以利用jquery的on方法解決(老版本使用live方法) $(document).on("click",".edit-btn",function(){             aler

jquery html動態新增的元素事件

在實際開發中會遇到要給動態生成的html元素繫結觸發事件的情況: <div id="testdiv">    <ul></ul> </div> 假設我們要給ul動態新增的<li>繫結click事件形成如下結果 &

jquery查詢元素,事件,DOM操作

//remove 會移除元素和元素關聯的事件//detach 只會移除元素$("#btn").click(function(){alert("123123");}); 遍歷節點$("strong").each(function(i,e){ //i  下標  從0開始 //e  元素console.log(i,

jquery事件方法on中獲取當前所在元素及子元素的方式

有時我們要使用jquery中的繫結事件的方法on,來獲取當前所在元素,以及當前所在元素的子元素,可以參考: $(document).on('mouseover', '#item', functio

Jquery給動態新增的元素事件:live() delegate() on()

給已存在的元素繫結事件時可以直接寫: $(".class a").click(function(){ }) 但是對於動態生成並append()到頁面上的元素來說,就不能直接用上面的方法來繫結事件了。 在Jquery 1.7之前我們可以通過live()和delega

為未來元素事件(JavaScript和jquery兩種方法對比)

小白 ~_~!!  日常打醬油  一般我們為已經存在的元素繫結事件,那麼直接獲取這個元素的id,直接繫結上去就可以了. 但當這個元素不存在,將會我們又會新增進去的時候,直接獲取目標元素id繫結事件就會對未來新新增的元素失效了!!.  也就是你後來新新增這個元素,是無法被觸發的

jquery多個元素同一事件以及回車事件觸發點選事件

1.多個元素繫結同一事件 場景呈現:在登入功能中可以會在每個輸入框中監聽回車事件或者是其他相同事件,這時候就可以通過下面方式進行繫結. $(".login_wrap input[name=usern

關於 jquery html 動態新增的元素事件——On()

Ajax動態生成的資料,動作繫結需要重新執行1 $(document).on('click','.btn1',function(){}); 2 3 替換: 4 5 $('btn1').on('click') = function(){};JQuery On()定義和用法on() 方法在被選元素及子元素上新

Jquery給HTML元素按鍵事件-回車事件

在做網頁的時候,有時是需要js來判斷使用者的按鍵來進行操作對應的功能。 本例項已載入jquery.js 1、全域性判斷按鍵(按回車) $(document).keypress(function(e) { var eCode = e.k

jquery未來元素事件

對未來元素繫結,不能用bind。 1、可以用live代替,但是要注意jquery的版本,根據官方文件,從1.7開始就不推薦live和delegate了,1.9裡就去掉live了。  2、不支援live之後什麼代替live呢,是on,用法如下所示: //放在$(functio

jQuery(八)事件

on()方法 說明:方法在被選元素及子元素上新增一個或多個事件處理程式。 語法:$(selector).on(event,childSelector,data,function) event:必需。規定要從被選元素移除的一個或多個事件或名稱空間。由空格分隔多個事