У меня есть кнопка удаления на столе и jquery на клике eventlistener для кнопки. здесь коддобавление функции нажатия кнопки динамически
$(".delbtn").click(function() {
var count = 0;
var $row = jQuery(this).closest('tr');
var $columns = $row.find('td');
var values = "";
jQuery.each($columns, function(i, item) {
if(count == 0){delFund = item.innerHTML}
if(count == 1) {delOrg = item.innerHTML}
if(count == 2) {stat = item.innerHTML }
count++
});
//the below lines of codes would display how to show values on a browser like
// firefox or chrome.
//console.log(delFund, delOrg);
$(this).closest("tr").fadeTo(500, 0, function() {
$(this).remove();
});
//update the item on the database table for deletion.
$.ajax({type: "POST",
url: "dbfunctions.jsp",
data: {TYPE:'D', fundval: delFund, orgval: delOrg, tuidval:tuid, status:stat }}).done(function(msg)
{
//alert(msg);
});
});
Это все работает отлично, моя проблема заключается в том, что я запрос к базе данных, которые я затем используется для обновления HTML таблицы с этими данными, и я добавить новую кнопку в последней строке на столе , Однако кнопка не реагирует, когда я нажимаю на нее. Я считаю, потому что к нему не присоединился слушатель событий. Итак, мой вопрос: как я могу обновить кнопку, чтобы прослушиватель событий, который я уже добавил ко всем предыдущим кнопкам, также привязан к новой динамически сгенерированной кнопке?
вот фрагмент кода того, как я добавляю элемент в конец моей таблицы.
$("#thisTable > tbody").append(
"<tr><td>"+thisfund.value+"</td>"+
"<td>"+thisorg.value+"</td>"+
"<td>"+'PENDING ACCESS'+"</td>" +
"<td>"+"<a class='delbtn' href='#'>X</a>"+"</td></tr>");
thisfund.value = "";// set the input boxes back to null
thisorg.value = "";
});
Вы должны смотреть в '$ .delegate' http://api.jquery.com/delegate/ –
' делегат() '(не $ .delegate) является устаревшим. Вы должны заглянуть в ['on()'] (http://api.jquery.com/on/) – elclanrs
@wnwall: '.on()' для jquery> = 1.7 – zerkms