簡體   English   中英

.on事件不適用於新添加的按鈕jQuery

[英].on event not working on new added button jquery

我有一個包含一個TR的樣本表的div

<div>
<table id="sample_row" style="width:300px">
<tr>
<td>
<select id="employer">
  <option value="1">Employer 1</option>
  <option value="2">Employer 2</option>
  <option value="3">Employer 3</option>
  <option value="4">Employer 4</option>
</select>
</td>
<td>
<select id="location">
  <option value="1">Location 1</option>
  <option value="2">Location 2</option>
  <option value="3">Location 3</option>
  <option value="4">Location 4</option>
</select>
 </td>
 <td><input type="text" name="fname" id="subArea"></td>
  <td>
<select id="employeeType">
  <option value="1">Part Time</option>
  <option value="2">Leased</option>
  <option value="3">Temporary</option>
  <option value="4">Full Time</option>
</select>
</td>
<td><input type="button" value="Save" id="save" class="save"></td>
<td><input type="button" value="Cancle" id="cancle"></td>
</tr>
</table>
</div>

以下是我的jQuery函數

<script>
$( document ).ready(function() {

$("#save").on("click", function(){
     alert("##");
});
    $("#add").click(function(){
    var tr =$("#sample_row tr:first").clone();
    $('#services_list tbody').prepend('<tr />').children('tr:first').replaceWith(tr);

});

});
</script>

行已成功添加, 但是.on事件無法在帶有tr的新添加按鈕上起作用?

on事件的功能是第二個參數,否則與單擊處理程序相同。

$(document).on("click", ".save", function(){
     alert("##");
});

上面的代碼將檢查文檔中的click事件,如果目標元素是#save ,它將調用event。

當您想到多個項目時,請始終使用class,在這種情況下請不要使用ID。

問題是您需要在DOM中委派給父對象以供將來添加元素。 另外,您不應該復制ID的事實也應得到糾正。

.on函數可以委托給父元素,以便將來添加的元素可以綁定。 下面的on()語句中的第二個參數允許我將click事件綁定到#samle_row並為目標元素“ .save”委派

$("#sample_row").on("click",".save",function(){
     alert("##");
});

使用以下

$("body").on("click", ".save", function(){
     alert("##");
});

您甚至可以用#sample_row代替body :)

嘗試這個

$('body')
    .on('click', '.save', function (event) {
        alert("##");
    })
    .on('click', '#add', function (event) {
       var tr =$("#sample_row tr:first").clone();
        $('#services_list tbody').prepend('<tr />').children('tr:first').replaceWith(tr);
    }
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM