2015-04-13 6 views
0

Я положил некоторые JS код в application.js fileand он не работает ...код расслоение плотной не работает в Rails

application.js:

//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

//... 

obj.dd.on('click', function(event){ 
    $(this).toggleClass('active'); 
    return false; 
}); 

//... 

$(function() { 

    var dd = new DropDown($('#dd')); 

    $(document).click(function() { 
     // all dropdowns 
     $('.wrapper-dropdown-5').removeClass('active'); 
    }); 

}); 

также Ii активировал линию в инициализаторы/assets.rb файл:

Rails.application.config.assets.precompile += %w(search.js) 

, но в любом случае мой код недоступен для использования в целях. Я думаю, что не должно быть ничего лишнего, как в application.js.

Может быть, должно быть что-то еще?

+0

На какой среде у вас есть эта проблема? – ppascualv

ответ

0

Работающий javascript, который находится в applications.js будет работать. Поэтому я предполагаю, что ваша проблема заключается не в ее части, а в вашей функции.

Добавить console.log 'clicked' в вашу click функцию, чтобы увидеть, есть ли пожары при нажатии. Я думаю, что ваша проблема с javascript может быть привязана к вашей функции щелчка не в функции document.ready().

0

1) Вы упомянули об этом в своем макете приложения?

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 

2) После этого используйте предупреждающее сообщение в вашем application.js

alert('Hello'); 
0

Rails.application.config.assets.precompile + =% вес (search.js)

Выглядя выше строки кода. Я думаю, у вас есть файл search.js. Всякий раз, когда вы хотите использовать внешний js-файл (добавленный вручную), вы должны сообщить application.js файл, чтобы включить такой файл.

Так что ваш файл application.js должен быть (если вы хотите добавить search.js, которая не находится под app/assets/javascript/ и помещен под vendor/assets/javascript/)

//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require search #js file will be added like this without it's extension 
//= require_tree . 

Примечание://= require_tree будет включать в себя все JS файлы, которые находятся под app/assets/javascript/ папка.

+0

Если вы используете // = require_tree, нет необходимости упоминать // = require search явно. –

+0

@Umar: Но если файл search.js находится под папкой поставщика, тогда я думаю, что это необходимо –

+0

Да, но тогда не используйте // = require_tree –