JavaScript не работает в приложении rails 5

1

Я хочу использовать статические файлы javascript, не используя драгоценные камни в моем приложении rails. Мой application.js выглядит так

//= require jquery
//= require bootstrap
//= require owl-carousel
//= require rails-ujs

И весь Js файл, который я должен добавить в папку javascript, без использования какого-либо драгоценного камня, использующего конвейер активов. Конечный результат, который я хочу. Но в моем rails приложение javascript не работает или не загружается. Мой application.css.scss выглядит так:

@import "bootstrap";
@import "style";
@import "owl-carousel";

И код index.html.erb

<div class="app_screenshots_slides owl-carousel">
    <div class="single-shot">
        <%=image_tag("scr-img/1.png", alt: "")%>
    </div>
    <div class="single-shot">
        <%=image_tag("scr-img/2.png", alt: "")%>
    </div>
    <div class="single-shot">
        <%=image_tag("scr-img/3.png", alt: "")%>
    </div>
    <div class="single-shot">
        <%=image_tag("scr-img/4.png", alt: "")%>
    </div>
    <div class="single-shot">
        <%=image_tag("scr-img/1.png", alt: "")%>
    </div>
    <div class="single-shot">
        <%=image_tag("scr-img/3.png", alt: "")%>
    </div>
</div>
  • 1
    JavaScript не работает при загрузке. так что проверяйте консоль на наличие ошибок. затем установите точку останова, потому что вы не включили код об этой проблеме
  • 0
    включает ли ваш application.html.erb javascript_include_tag «application»
Показать ещё 2 комментария

2 ответа

0
Лучший ответ

Все ваши javascripts на самом деле загружены, но проблема в том, что вы не инициализируете плагин совой карусели. Просто добавь

$(document).ready(function () {
    $(".owl-carousel").owlCarousel();
});

в boottom вашего home/index.html.erb или в вашем соответствующем файле js, чтобы он работал.

Изменить - Исправить для вашей текущей настройки
Проблема заключается в том, что ваш плагин инициализирован до загрузки вашего фактического html. Возможные исправления

1.Change

    (function ($) {
    'use strict';


// :: 1.0 Owl Carousel Active Code
    if ($.fn.owlCarousel) {
        $(".welcome_slides").owlCarousel({
            items: 1,
            loop: true,
            autoplay: true,
            smartSpeed: 1500,
            nav: true,
            navText: ["<i class='pe-7s-angle-left'</i>", "<i class='pe-7s-angle-right'</i>"]
        });
        $(".app_screenshots_slides").owlCarousel({
            items: 1,
            loop: true,
            autoplay: true,
            smartSpeed: 800,
            margin: 30,
            center: true,
            dots: true,
            responsive: {
                0: {
                    items: 1
                },
                480: {
                    items: 3
                },
                992: {
                    items: 5
                }
            }
        });
    }

})(jQuery)

; в assets/javascripts/owl-carousel.js для

    $(document).ready(function () {

    if ($.fn.owlCarousel) {
        $(".welcome_slides").owlCarousel({
            items: 1,
            loop: true,
            autoplay: true,
            smartSpeed: 1500,
            nav: true,
            navText: ["<i class='pe-7s-angle-left'</i>", "<i class='pe-7s-angle-right'</i>"]
        });
        $(".app_screenshots_slides").owlCarousel({
            items: 1,
            loop: true,
            autoplay: true,
            smartSpeed: 800,
            margin: 30,
            center: true,
            dots: true,
            responsive: {
                0: {
                    items: 1
                },
                480: {
                    items: 3
                },
                992: {
                    items: 5
                }
            }
        });
    }

});


2. Переместите свой javascript_include_tag в свой application.html.erb в нижней части страницы, перед тем, как </body>
3. Переместите скрипт инициализации карусели совы из owl-carousel.js в ваш home/index.html.erb
Надеюсь, это поможет.

  • 0
    Я также инициализирую в нижней части моего файла js сова карусель ... как это
  • 0
    Смотрите здесь github.com/asdimalix/javascript-test/blob/master/app/assets/…
Показать ещё 5 комментариев
0

rails-ujs, введенный в Rails 5, не предназначен для использования jQuery - он был разработан, чтобы избавиться от зависимости jQuery.

См. Мой подробный ответ

Ещё вопросы

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