Эффект jQuery CSS теряется при рендеринге: действие => редактировать, как от него избавиться?

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

В моем пользовательском интерфейсе edit.html, У меня есть

 <input type='text', id='name'></input>
  

и у меня есть

 <p>Name:</p>
  

У меня есть файл javascript, который будет использовать jQuery для css стиля пользовательского интерфейса:

 $('<p></p>').css('margin-left', '20px').insertAfter($('#name'));
  

Приведенный выше CSS определит, что <p> элемент будет расположен в 20 пикселей справа от <input> .

Все в порядке, когда мое приложение сначала загружает edit.html На странице присутствует стиль CSS.

НО, когда проверка модели завершилась неудачей, и в моем контроллере я использую

render :action=>edit ,

функция стиля CSS потеряна;

однако, если мой контроллер использует

redirect_to :action=>edit, :id=>@user ,

стиль CSS присутствует, как и ожидалось.

Почему мой стиль CSS, определенный jquery, теряется, если я использую render :action=>edit для рендеринга этой страницы. Как от этого избавиться? Я хотел бы использовать render :action=>edit , пока мой CSS, определенный jQuery, вступает в силу.

Комментарии:

1. Есть ли у вас какие-либо условные javascript-включения / разные макеты с разными файлами JS?

2. Да, в моем js есть логика, согласно которой «если это находится на странице редактирования, то код вступает в силу». Но я перехожу на страницу редактирования, единственное отличие заключается в использовании «render» и «redirect_to», что дает другой результат. Код js, похоже, не вступает в силу, если я использую ‘render’ в моем контроллере, это моя проблема.

3. каково точное условие? Рендеринг и перенаправление выполняют разные действия — перенаправление фактически выполняет действие, тогда как рендеринг просто показывает вид

4. Точное условие — ‘pathEndsWith(‘\d / edit $’)’, в моем js я проверю, является ли это условие истинным или ложным. если это true, следующий код jQuery должен вступить в силу. Итак, как ‘render’, так и ‘redirect_to’ переходят на страницу редактирования, почему ‘render’ приводит к потере функциональности js-кода?