Приложение My Rails содержит таблицу редактирования, подобную Excel, с использованием полей best_in_place. Они отлично работают при загрузке страницы, и у меня нет проблем с вызовом функций coffeescript на ajax:success
после того, как пользователь отредактирует поле best_in_place.Rails Best_in_place ajax: успех не распознается
Поскольку это таблица в формате Excel, пользователи могут щелкнуть ссылку, чтобы добавить новую таблицу-заполнитель в таблицу. Мой файл create.js.erb добавляет строку без перезагрузки страницы. В новой строке есть несколько ячеек таблицы с функциональностью best_in_place, и их обновление обновляет базу данных, насколько это хорошо.
Проблема заключается в том, что, когда пользователь затем редактирует best_in_place поля в одном из новых строк, ajax:success
не срабатывает, поэтому мое CoffeeScript функция не инициирует.
Я подтвердил, что новые ячейки таблицы имеют те же атрибуты класса и данных, что и существующие ячейки таблицы (ajax:success
читается в имени класса).
Вопрос: в этом сценарии, как мне инициировать мою функцию coffeescript, если ajax:success
не распознается?
Milestone контроллер, как создавать и обновлять действия
def create
@payment_schedule = PaymentSchedule.find(params[:id])
build_default_milestone # this builds a placeholder milestone
if @milestone.save
increment_milestone_positions # this relates to a sortable table
respond_to do |format|
format.js
format.html { redirect_to :back }
end
else
respond_to do |format|
format.js
format.html { redirect_to :back }
end
end
end
def update
@milestone = Milestone.find(params[:id])
respond_to do |format|
if @milestone.update(milestone_params)
update_milestone_amounts
format.html { redirect_to(:back) }
format.json { respond_with_bip(@milestone) }
else
format.html { redirect_to(:back) }
format.json { respond_with_bip(:back) }
end
end
end
Create.js.erb
$('#milestone-body').prepend('<%= escape_javascript(render partial: 'row_add', locals: { milestone: @milestone }) %>');
функция CoffeeScript
update-percent
это имя класса б est_in_place. Эта функция отлично срабатывает для существующих строк, а не для новых.
$('.update-percent').on 'ajax:success', (event, data, status, xhr) ->
...
Любые предложения по тому, как это решить?
«Редактируемая в Excel таблица» = электронная таблица – max
Вы можете проверить jQuerys 'ajaxComplete()' fn и leter проверить на успех в нем. [Docs] (https://api.jquery.com/ajaxcomplete/) – Drops