Подумайте об использовании метода .on()
в jQuery, чтобы убедиться, что ваша логика событий связана с элементами, которые будут добавлены в DOM в будущем.
Например, вы можете изменить свой код следующим образом:
$(function() {
$('.test-form').submit(function(e) {
e.preventDefault();
$(this).append('<a href="testing" class="test-link">Click here</a>');
});
$('body').on('click', '.test-link', function(e) {
e.preventDefault();
alert($(this).attr('href'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<form class="test-form">
<input type="submit">
</form>
Это означает, что ваш обработчик click
будет вызываться для любых соответствующих элементов, которые существуют в настоящее время или добавляются позже (т.е. после отправки формы).
Для получения дополнительной информации см. Документацию для on()
.Надеюсь, это поможет!