Например:
У меня есть сценарий обработки общей формы, который работает следующим образом:
function default_form_method(){
$("form[data-remote='true']").bind("ajax:error", function(evt, xhr, status, error){
//show the errors, etc.
})
.bind('ajax:success', function(evt, data, status, xhr){
// clear the form, etc.
});
}
Теперь, когда я загружаю форму удаленно, через частичную, такую как index.js.erb:
$(function(){
$(".listing").html("<%= escape_javascript(render 'matches/a_cool_form') %>");
});
Недавно загруженная форма не имеет привязки к default_form_method. Раньше я исправил это, снова вызвав метод в js.erb следующим образом:
$(function(){
$(".listing").html("<%= escape_javascript(render 'matches/a_cool_form') %>");
default_form_method();
});
Но это кажется излишним, и мне интересно (?), Если это замедляет производительность.
Какое решение всегда нужно привязать методы конвейера к ресурсам, даже если форма загружена на стороне клиента? Я предполагаю, что это связано с загрузкой функции last.
Это потому, что bind привязывается только к существующим элементам, а не к динамически загружаемым элементам. Пытались ли вы on
(замена live
)?
function default_form_method(){
$("form[data-remote='true']").on("ajax:error", function(evt, xhr, status, error){
//show the errors, etc.
})
.on('ajax:success', function(evt, data, status, xhr){
// clear the form, etc.
});
}