$ (document) .ready не работает в Rails

0

Я использую *.js.erb в своем Rails-приложении, которое реагирует на щелкнув ссылку. Но когда я делаю свою страницу, получая ее через link_to, мне нужно обновить страницу, чтобы она работала. Есть ли трюк, как я могу это сделать?

Вот очень упрощенная версия моего кода:

$(document).ready(function(){
  $('#toright').click(alert(">> was clicked"));
});

$(document).ready(function(){
  $('#toleft').click(alert("<< was clicked"));
});

$(document).ready(function(){
  $('#save').click(alert("save was clicked"));
});

$(document).ready(function() {
    alert("The document is ready!");
});

После рендеринга сайта он не показывает мою функцию, но когда я набираю URL-адрес в адресную строку, он работает.


Некоторые РЕДАКЦИИ:

  • Я использую Rails 4.0.1
  • У меня есть js.erb в папке моих ресурсов
  • ОК. Я поместил их все в один $ (документ).ready, но мне все равно придется перезагрузить мой файл, чтобы сделать мою работу JS.

ОБНОВИТЬ:

Поэтому я редактировал приложение application.js для

$(document).ready(function(){
alert("The document is ready!");    
$('#toright').click(alert(">> was clicked"));
$('#toleft').click(alert("<< was clicked"));
$('#save').click(alert("save was clicked"));
});

и поместите мой js.erb только в.js в папку my assets/javascripts. Но в любом случае, это просто не сработает, пока я не обновил страницу.

  • 0
    Вы включили тег javascript на странице просмотра?
  • 0
    Какая версия Rails ? использовать turbo-links ?
Показать ещё 3 комментария

1 ответ

0

ready - это функция jQuery, поэтому вы можете использовать и правильно включить библиотеку jQuery в свой Javascript.

Кроме того, если вам не нужно обмениваться данными между вашим контроллером и вашим Javascript, я советую вам разместить ваш Javascript в папке вашего ресурса, например: /app/assets/application.js.

Это возможно только для приложений Rails 3.x и 4.x.

С наилучшими пожеланиями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню