我有一個表,每次用戶點擊添加按鈕,加上一個新一行,4個<td>
元素,其中三個是輸入元素,最後是一個小按鈕。點擊添加按鈕完美地工作,但每當我點擊小按鈕,什麼也沒有發生。它不會觸發函數,並且當我刷新頁面時,按鈕(而不是輸入元素)消失。下面是添加錶行了ajax:圖像會從表頁面刷新後刪除,也可以點擊它不會觸發功能
var new_period = $("<tr data-pid='" + period.id + "' class='period'>" +
"<td>Name:</td><td><input class='period_name' type='text'></td>" +
"<td>Start:</td><td><input class='period_start' type='text'></td>" +
"<td>End:</td><td><input class='period_end' type='text'></td>" +
"<td><a id='remove_periods_btn' href = '#'><img src='/img/x.png'></a></td>" +
"</tr>");
這裏是我的jQuery的功能點擊的小按鈕時,應能觸發:
$("#remove_periods_btn").click(function(e) {
alert("Working");
e.preventDefault();
});
謝謝!
一個ID必須是一個文檔的唯一內。而且,jQuery的.click僅將事件綁定到DOM中已有的元素 - 如果您稍後添加元素,則必須使用'.on'。 http://api.jquery.com/on/ – CBroe 2013-04-10 15:13:04
@CBroe'。對()'無關這個問題,你可以將一個事件處理程序,你想要的任何方式(綁定/現場/點擊/就緒)時,元素就必須存在。 – 2013-04-10 15:15:09
是,但使用'.on'(作爲用於棄用'.live'替換)到已存在有_don't_的元素。你在回答中所做的是我的意思:-) – CBroe 2013-04-10 15:25:54