Я работаю над сайтом с помощью начальной загрузки.
По сути, я хотел использовать модал на домашней странице, вызванный кнопкой в Hero Unit.
Код кнопки:
<button type="button"
class="btn btn-warning btn-large"
data-toggle="modal"
data-target="#myModal">Open Modal</button>
Модальный код:
<div class="modal hide fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">In Costruzione</h3>
</div>
<div class="modal-body">
<p>Test Modal: Bootstrap</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Chiudi</button>
<button class="btn btn-warning">Salva</button>
</div>
</div>
Проблема в том, что, как только я нажимаю на кнопку, модал исчезает, а затем сразу исчезает.
Буду признателен за любую помощь.
Кроме того, как изменить цвет выпадающего треугольника (направлен вверх, без наведения)? Я работаю над сайтом на основе оранжевого и коричневого, и эта синяя штука действительно раздражает.
twitter-bootstrap
modal-dialog
gorokizu
источник
источник
Ответы:
Вероятная причина
Это типичное поведение, когда JavaScript для модального плагина загружается дважды. Пожалуйста, убедитесь, что плагин не загружается дважды. В зависимости от используемой вами платформы модальный код может быть загружен из ряда источников. Некоторые из распространенных:
require('bootstrap')
Советы по отладке
Хорошее место для начала - осмотреть зарегистрированных
click
слушателей событий с помощью инструментов разработчика в вашем браузере. Например, в Chrome будет указан исходный файл JS, в котором можно найти код для регистрации прослушивателя. Другой вариант заключается в попытке поиска источников на странице для фразы , найденной в коде модальной, например,var Modal
.К сожалению, они не всегда находят вещи во всех случаях. Проверка сетевых запросов может быть немного более надежной, чтобы дать вам представление обо всем, что загружено на страницу.
A (Сломанный) Демо
Вот демонстрация того, что происходит, когда вы загружаете и bootstrap.js, и bootstrap-modal.js (просто для подтверждения вашего опыта):
Plunker
Если вы прокрутите вниз до источника на этой странице, вы можете удалить или закомментировать
<script>
строку для bootstrap-modal.js, а затем проверить, что теперь модал будет работать так, как ожидалось.источник
У меня была та же проблема, но у нее была другая причина. Я проследил за документацией и создал такую кнопку:
Когда я щелкнул по нему, оказалось, что ничего не произойдет. Тем не менее, кнопка находилась в папке,
<form>
которая временно просто загружала ту же страницу.Я исправил это, добавив
type="button"
элемент button, чтобы он не отправлял форму при нажатии.источник
Для меня то, что сработало, было удалить
с кнопки. Сама кнопка может быть любым элементом - ссылкой, div, кнопкой и т. Д.
источник
Некоторое время я искал дубликат ссылки на загрузку в моем приложении mvc, после других полезных ответов на этот вопрос.
Наконец нашел его - он был включен в другую библиотеку, которую я использовал, так что это было неочевидно! (
datatables.net
).Если проблема не устранена, поищите другие библиотеки, которые могут включать в себя загрузчик. (
datatables.net
позволяет указать загрузку с или без начальной загрузки - другие делают то же самое).Так что я снял
bootstrap.min.js
с моегоbundle.config
и все работало нормально.источник
Тот же симптом в контексте приложения на Rails с Bootstrap, предоставляемым
bootstrap-sass
гемом, и ответ @ merv поставил меня на правильный путь.Мой
application.js
файл имел следующее:Исправление было удалить одну из двух строк. В самом деле, readme для драгоценного камня предупреждает вас об этой ошибке. Виноват.
источник
Мой код почему-то включал bootstrap.min.js дважды. Я удалил один из них, и теперь все работает нормально.
источник
e.preventDefault();
с JQuery UIДля меня эта проблема произошла с переопределением метода click на кнопке пользовательского интерфейса jquery, вызывая перезагрузку страницы по умолчанию.
источник
Проблема также может возникнуть, если с помощью jquery вы дважды подключаете прослушиватель событий. Например, вы можете установить без привязки:
Если это происходит, событие запускается дважды подряд и модальное исчезает.
Смотрите пример: http://embed.plnkr.co/i5xB1WbX7zgXrbDMhNAW/preview
источник
Я столкнулся с тем же симптомом, который @gpasse показал в своем примере. Вот мой код ...
Как предложил @Bhargav, моя проблема была связана с тем, что кнопка попыталась отправить форму и перезагрузила страницу. Я изменил кнопку на
<a>
ссылку следующим образом:... и это решило проблему.
ПРИМЕЧАНИЕ: у меня недостаточно репутации, чтобы просто добавить комментарий или комментарий, и я чувствовал, что могу добавить небольшое пояснение.
источник
У меня тоже была та же проблема, но для меня это происходило, потому что у меня была кнопка с типом «отправить» в модальной форме. Я изменился
в
И это решило проблему исчезновения.
источник
В моем случае у меня был только один файл bootstrap.js, включенный файл jquery.js, но все равно получался такой тип ошибки, и мой код для кнопки был примерно таким:
Я просто добавил e.preventDefault (); к этому, и это работало как очарование.
Итак, мой новый код был похож на ниже:
источник
Я сам столкнулся с этой проблемой сегодня, и это случилось только в Chrome. Что заставило меня понять, что это может быть проблема рендеринга. Перемещение конкретного модального слоя в собственный слой рендеринга решило эту проблему.
источник
В моем случае нажатие на кнопку вызывает (нежелательную) перезагрузку страницы.
Вот мое исправление:
источник
В моем случае у меня есть
actionlink
кнопка использования в MVC, и я столкнулся с этой проблемой, я пробовал много решений выше и других, но все еще сталкиваюсь с этой проблемой, затем я осознаю свою ошибку в коде.Я назвал модальный в JavaScript с помощью
До ошибки я использовал эту кнопку
У меня нет значения свойства href в этой кнопке, поэтому я столкнулся с проблемой.
Затем я редактирую этот код кнопки следующим образом
затем проблема решается просто из-за отсутствия # в первом.
посмотрим, будет ли это полезно для вас.
источник
Еще одна причина / решение! Я имел в своем коде JS:
Но мой HTML-код уже был написан как:
Так что это еще одна перестановка того, как дублирование вводило код и заставляло модальное окно открываться, а затем закрываться. В моем случае
data-target
иdata-toggle
в html согласно документации Bootstrap уже запускается модальный режим. Поэтому код JS является избыточным, и после удаления он работает.источник
У меня была такая же проблема, работая над проектом с asp.NET. Я использовал bootstrap 3.1.0 и решил ее понизить до Bootstrap 2.3.2.
источник
У меня тоже была проблема, если кнопка находится внутри После этого тег мод появляется один раз и довольно скоро исчезает, вынимая кнопку из формы, исправляя проблему. Спасибо, я оказался в этой теме! +1 ко всем.
источник
Я столкнулся с той же проблемой во время тестирования на мобильных устройствах, и этот прием сработал для меня
Измените кнопку на метку привязки, она должна работать, проблема возникает из-за кнопки типа, когда она пытается отправить, поэтому модальное немедленно исчезает. А также удаляет скрытие из модального скрытия, дает
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
Надеюсь, что это будет работать для вас.источник
type="submit"
чтобыtype="button"
решить эту проблему.В моем случае я включил CDN в главу application.html.erb, а также установил гем 'jquery-rails', который, как я предполагаю, благодаря документации и сообщениям выше, является излишним.
Я просто закомментировал CDN (ниже) из главы application.html.erb, и модал соответствующим образом остается открытым.
источник
У меня тоже была такая же проблема. Проблема со мной заключалась в том, что при нажатии ссылки я отображал модальный режим и запрашивал подтверждение с помощью jquery.
Приведенный ниже код отображает модальное значение, которое сразу исчезает:
В итоге я добавил '#' в href, чтобы ссылка никуда не делась, и это решило мою проблему.
источник
Вы пытались удалить
источник
Я знаю, что это старый, но вот еще одна вещь, чтобы проверить - убедитесь, что у вас есть только один атрибут data-target =. Я продублировал это, и результат был согласно этой теме.
источник
Я добавил
bootstrap
в свой проект черезbower
, затем импортировалbootstrap.min.js
файл и послеmodal.js
файла. (Кнопка, которая открывает модал, находится внутри формы). Я просто удаляю импорт,modal.js
и он работает для меня.источник
в случае, если кто-то использует codeigniter 3 с начальной загрузкой данных.
ниже мое исправление в config / ci_boostrap.php
источник
Пришлось столкнуться с той же проблемой. Причина такая же как
@merv
. Проблема связана с тем, что на страницу добавлен компонент календаря. Сам компонент добавляет модальную функцию, которая будет использоваться во всплывающем окне календаря.Таким образом, причинами всплытия модели будет одно или несколько из следующих
источник
во время работы с Angular (5) я столкнулся с той же проблемой, но в моем случае я решил следующее:
component.html
component.ts
ПРИМЕЧАНИЕ: необходимо импортировать jquery в файл ts как «объявить var $: any;»
Изменения, которые я сделал:
удалил "data-toggle =" modal "из тега Button (благодаря @miCRoSCoPiC_eaRthLinG этот ответ мне в этом помогает) в моем случае показ модального отображения, поэтому я создал (click) =" showresult () "
Внутри component.ts необходимо объявить Jquery ($), а метод щелчка внутренней кнопки showresult () вызвать "$ ('# myModal'). modal ('show');"
источник
У меня была та же проблема, потому что я переключал свой модал дважды, как показано ниже:
Я удалил одно вхождение:
и это работало как волшебство!
источник