Я новичок в этом, поэтому, пожалуйста, потерпите меня ...
Допустим, у меня есть этот код JavaScript
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
Насколько я понимаю, этот код будет "захватывать" любые ссылки и публиковать окно с предупреждением. Обычно это работает нормально.
Теперь на той же странице у меня также есть таблица, и при отправке я фиксирую отправку формы и использую JQuery для добавления строки в отображение пользователей во время отправки данных на сервер.
Вот код для перехвата почтового запроса (в основном взято из Railscasts # 136 )
jQuery.ajaxSetup({
'beforeSend': function(xhr) {
xhr.setRequestHeader("Accept", "text/javascript")
}
})
jQuery.fn.submitWithAjax = function() {
this.submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
})
return this;
};
$(document).ready(function() {
$("#new_ride_form").submitWithAjax();
})
Вот код для визуализации частичного ...
$("#add_new_ride").before("<%= escape_javascript(render(:partial => @ride)) %>");
$("#ride_<%=@ride.id %>").effect("highlight", {color: '#aaffaa'}, 2000);
$("#new_ride_form")[0].reset();
Вот код для создания ссылки в одной из ячеек таблицы, сгенерированной частичным
<td><%= link_to 'remove', ride_url(ride),
:id => :destroy_ride,
:method => :delete,
:href => delete_ride_url(ride) %>
</td>
Теперь, когда я отправляю форму, затем нажимаю ссылку «удалить» во вновь созданной строке таблицы, она просто отправляет запрос на удаление. Javascript для создания окна предупреждения «Hello World» не выполняется.
Если, однако, я отправляю форму, создаю новую строку таблицы, , затем вручную обновляю страницу , прежде чем нажать ссылку «удалить» во вновь созданной строке таблицы, появится предупреждение «Hello World». окно отображается, как и ожидалось.
Что здесь происходит, когда мне нужно обновить вручную, чтобы получить ожидаемое поведение?
Есть ли событие «document.ready» или что-то, что мне нужно вызвать после использования AJAX для добавления строки таблицы, чтобы сообщить коду «эй, здесь есть кое-что новое, что вам нужно наблюдать».
Спасибо!
Кстати, я пишу в Rails и JQuery, но я не совсем уверен, что это важно.