Я пытаюсь добавить эту боковую панель в мой проект rails, и кажется, что есть конфликт с моими Js и предоставленными js.
Так что, когда я нажимаю на раскрывающийся список боковой панели,он закрывается так же быстро, как и был открыт ..... Я попробовал этот код в новом приложении rails, и он работает ... Так что я думаю, что-то в моем беспорядке приложения, но я не могу найти что.В консоли браузера нет ошибок ...
Я завернул js-код примерно так в app/assets/sidebar.js
У меня есть:
$(document).on('turbolinks:load', function() {
jQuery(function ($) {
$(".sidebar-dropdown > a").click(function() {
$(".sidebar-submenu").slideUp(200);
if (
$(this)
.parent()
.hasClass("active")
) {
$(".sidebar-dropdown").removeClass("active");
$(this)
.parent()
.removeClass("active");
alert("I am in the if");
} else {
$(".sidebar-dropdown").removeClass("active");
$(this)
.next(".sidebar-submenu")
.slideDown(200);
$(this)
.parent()
.addClass("active");
alert("I am in the else"); // this alert is working when i click
}
});
$("#close-sidebar").click(function() {
$(".page-wrapper").removeClass("toggled"); // this is working when i click
});
$("#show-sidebar").click(function() {
$(".page-wrapper").addClass("toggled"); // this is working when i click
});
});
});
В моем app/assets/application.js
У меня есть:
//= require jquery
//= require rails-ujs
//= require jquery3
//= require popper
//= require bootstrap-sprockets
//= require turbolinks
//= require cocoon
//= require highcharts
//= require chartkick
//= require_tree
В app/javascript/components/packs/application.js
У меня есть:
// Support component names relative to this directory:
var componentRequireContext = require.context("components", true)
var ReactRailsUJS = require("react_ujs")
ReactRailsUJS.useContext(componentRequireContext)
import flatpickr from 'flatpickr'
import 'flatpickr/dist/flatpickr.min.css'
import { French } from "flatpickr/dist/l10n/fr.js"
flatpickr(".datepicker",{
altInput: true,
"locale": French
});
в приложении / views / layouts / aplication.html.erb
<!DOCTYPE html>
<html>
<head>
<title>SuperShop</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<link href="https://fonts.googleapis.com/css?family=Montserrat:100,300,400" rel="stylesheet">
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= stylesheet_pack_tag 'application' %>
<%#= javascript_include_tag "https://maps.googleapis.com/maps/api/js?libraries=places&key=#{ENV['GOOGLE_API_BROWSER_KEY']}" %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= render "admin/shared/menu" %>
<%= render "layouts/admin/admin_nav" %>
<%= render "layouts/shared/flashes" %>
<%= yield %>
<%= javascript_pack_tag 'application' %> <!-- doit etre en dessous de turbolink -->
<!-- !!!!!! Il faut laisser les javascript_tags sous le yield si non probleme de react-->
</body>
</html>