jquery не работает с рельсами и фундаментом 4

Я добавил Foundation 4 в существующее приложение Rails, следуя указаниям на странице Foundation Rails.

У меня проблема в том, что мой пользовательский код jQuery не работает с Foundation. Вот единственная строка кода javascript в разделе заголовка application.html.haml:

= javascript_include_tag 'application'

Вот файл application.js:

//= require vendor/custom.modernizr
//= require jquery
//= require jquery_ujs
//= require datepickers
//= require table_accordions
//= require jquery.validate.min
//= require form_validators
//= require text_area_maxlength
//= require s3_upload
//= require foundation
$(document).foundation();

Я возился с несколькими последовательностями из них и просмотрел бесчисленное количество страниц в сети за последние пару дней, но не нашел подсказки.

Какие-либо предложения?


person Wes    schedule 21.04.2013    source источник


Ответы (3)


Если у вас есть дополнительный код в application.js, вам нужно добавить:

//= require_self
person Shawn Balestracci    schedule 22.04.2013
comment
Спасибо, но приведенный выше список — это весь файл. Я все равно пытался добавить его; без изменений. - person Wes; 22.04.2013
comment
Да, нужно добавить в файл require_self, чтобы 1 строчка дополнительных js в нем $(document).foundtation(); будет включен. - person Shawn Balestracci; 22.04.2013
comment
Я хотел бы выбрать ваш ответ как правильный. :D У меня было что-то очень похожее (у меня просто было меньше требований в моем application.js. Самое смешное, что вначале он отлично работал без require_self. То есть, пока я не добавил компас в микс. После этого я начал получать фанковый TypeError : $(...).foundation не является функцией - ошибка $(document).foundation(); Это очень помогло, спасибо. - person tkit; 25.06.2013

Я удалил

$(function(){ $(document).foundation(); });

из application.js и добавлен вручную

<script>$(document).foundation().foundation('joyride', 'start');</script>

прямо над закрывающим тегом body в файле application.html.erb, и все работает.

person oconn    schedule 05.01.2014

Я наконец понял это.

Оказывается, когда я обновил пакет в своем приложении, jquery-rails обновился до jquery 1.9.1, что несовместимо с большинством моих пользовательских javascripts.

Я изменил свою версию jquery обратно на 1.8.3, и все снова работает. И сайт значительно улучшен с помощью Foundation.

person Wes    schedule 22.04.2013