Переключение бутстрапа "раскрывающийся список" не работает должным образом в разработке, но работает в производстве
Я следую RailsTutorial sample_app, и внутри мы используем структуру twitter-boostrap. Существует раскрывающееся меню (код, jQuery), который не работает для меня должным образом в разработке env, но хорошо работает в производстве (на Heroku).
С помощью "Visual Event" я подтвердил, что есть событие, связанное с названием меню. Нормальное поведение должно быть нажато, чтобы изменить класс:
<li id="fat-menu" class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
в
<li id="fat-menu" class="dropdown open">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Тем не менее, в моем случае, при нажатии он добавляет "open" и удаляет в тот же момент. Я едва мог заметить, что он вносит изменения, но быстро возвращается в исходное состояние, и поэтому раскрывающееся меню не открывается.
Если я вручную отредактирую код в браузере и добавлю "open" в класс, откроется меню. Если я затем нажимаю на заголовок меню, он мгновенно удаляет "открыть", а затем снова возвращает его (прямо напротив первого случая).
Я очень озадачен тем, что он работает в производстве, но не в разработке (в том же браузере). Что я должен проверить?
Спасибо!
Василь//с первым вопросом
Ответы
Ответ 1
Вы получите это поведение, если дважды загрузите код для bootstrap-dropdown.js. Убедитесь, что вы не загружаете как bootstrap-dropdown.js И bootstrap.js. Последний включает первый.
Если вы удалите bootstrap-dropdown.js с панели ресурсов и перезапустите его, он будет работать.
Ответ 2
(Rails 3.2) Я решил эту проблему, удалив локально прекомпилированные активы - он отлично работал бы в Heroku/Prod, но мгновенно откроется и закроется в dev.
rake assets:clean
Ответ 3
У меня была такая же проблема, и оказалось, что загрузочные бутстрапы загружаются дважды. +1 для этого исправления!
Мы загружаем bootstrap-dropdown.js глобально, потому что мы используем его на каждой странице. Один из наших разработчиков загрузил bootstrap.js в виджет как зависимость. В результате наши выпадающие страницы работали на каждой странице, кроме одной. Было немного сложно отследить, и было бы намного сложнее выяснить, не зная, что недавно изменилось на странице.
Ответ 4
обновление от bootstrap -v от 2.1 до 2.3 решило проблему для меня.
Ответ 5
У меня возникла почти такая же проблема. Но вызывает загрузку bootstrap и bootstrap.min js файлов одновременно на одной HTML-странице в виде пакета (проект ASP.NET MVC). Удаление одного из них было решено.
Ответ 6
У меня была такая же проблема. Но все это произошло, когда я пропустил какой-то конечный элемент HTML.
Ответ 7
У меня была та же проблема. Я узнал, что предварительно скомпилированные активы используются в разработке и производстве. Я тестировал кэширование в производственной среде, и когда я переключился на разработку, выпадающие списки перестали работать.
Всегда помните, чтобы очистить свои скомпилированные активы при переходе к разработке с производства.
Ответ 8
Ни один из этих решений не работал у меня. Этот режим вызывал этот режим. То, что я обнаружил через тонну проб и ошибок, состояло в том, что config.assets.debug = false заставляло меня не видеть проблему с настройкой файла gem. Когда я установил его в true, ошибка, которую я указала, указывала на то, что мой "самонастроенный" камень был внутри моей группы активов, когда это не должно было быть.
Итак, для тех, кто попал в эту проблему и довел до конца этот комментарий, попробуйте установить config.assets.debug = true в своей производственной среде, чтобы убедиться, что он по крайней мере заставит вас указывать в правильном направлении.