Помогите с Rails 3 js - PullRequest
       1

Помогите с Rails 3 js

0 голосов
/ 04 марта 2011

Хотите обновить страницу после обновления jeditable (используя gem "on_the_spot"). Ниже работает обновление страницы, но после запуска скрипта поля уже не могут быть обновлены с помощью jeditable.

application.js

$('.on_the_spot_editing').change(function() {
   $.getScript('edit.js');
});

edit.js.erb

$("#items .on_the_spot_editing").change();
$("#edit_order_form").html("<%= raw escape_javascript(render('form')) %>");

Контроллер

respond_to do |format|  
  format.html  
  format.js if request.xhr?
end

поле

<%= on_the_spot_edit item, :price %>

РЕДАКТИРОВАТЬ -

$(document).ready(function(){
  $('.on_the_spot_editing').data('ok', 'Ok').live('click', function() {
    //  tried $.delay(800).getScript('edit.js');
    $.getScript('edit.js');
  });
});

РЕДАКТИРОВАТЬ 2 - Если data-ok = "Ok" - это разметка html5, было бы правильно проверить, нажал ли пользователь кнопку "Ok"?

$('.on_the_spot_editing').data('ok', 'Ok').live('click', function() {
  setTimeout(getIt, 500);
});

function getIt() {
  $.getScript('edit.js');
}

1 Ответ

0 голосов
/ 04 марта 2011

Первое замечание: я не совсем понимаю, почему внутри вашего edit.js нужно повторно запускать событие change? Разве это не должно создать петлю? Это было бы, если ... а-ха!

Поскольку вы переопределяете форму, вы теряете все привязки событий. Вы должны использовать live привязок . К сожалению, jEditable не использует live привязку. Предположительно, потому что он не существовал, когда был написан jEditable, и, во-вторых, я предполагаю, потому что, если вы собираетесь использовать javascript для редактирования одного поля, вы не захотите повторно визуализировать полную форму.

Если вы все еще хотите перерисовать полную форму, и для этого могут быть допустимые случаи (код находится на контроллере, обновите счетчики / состояния / что нет): убедитесь, что в вашем представлении form, Вы также снова загружаете on_the_spot.js. Это снова активирует форму.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...