2013-11-25 1 views
-1

У меня есть следующий код:Новые элементы, добавленные с помощью AJAX не работает с .on

$(".add_rows").on("click", function() { 
    alert('in here'); 
    $.post("add_row.php", function(data) { 
     $("#add_row_here").append(data); 
    }); 
}); 

В моем выходе PHP У меня есть следующие:

<a class="btn small fr add_rows" id="formsubmitswitcher">Add Rows</a> 

Я думал, что команда .он будет еще разрешите мне щелкнуть эту ссылку и снова запустить этот код. Почему это не работает, как я ожидал?

+0

Read http://api.jquery.com/ on/# direct-and-delegated-events, начиная с 4-го абзаца. – j08691

+0

.on - это не волшебная палочка, вы должны правильно ее использовать, чтобы делать то, что вы хотите. Вы специально использовали его таким образом, чтобы он НЕ делегировал событие. –

ответ

1

Вы можете попробовать делегирование событий с помощью .on()

$("#add_row_here").on("click",".add_rows" function() { 
    alert('in here'); 
    $.post("add_row.php", function(data) { 
     $("#add_row_here").append(data); 
    }); 
}); 

Синтаксис

$(closest-parent-element).on(event,"selector" function() {}); 

вместо документа вы можете использовать ближайший родительский элемент

+0

Не используйте 'document'. Он явно использует '# add_row_here' в качестве контейнера для этих элементов, поэтому он должен быть там, где' on' связан. – meagar

+0

@meagar Спасибо за указание! :) –

Смежные вопросы