Я в большой степени новичок, поэтому я думаю, что наблюдаю за чем-то (вероятно, очевидным) с помощью модального режима загрузки twitter. Я пытаюсь запустить модальное окно только на мобильных устройствах. Это отлично работает с добавлением класса .visible-phone в модальный div. Все идет нормально. Но потом я хочу, чтобы он работал, то есть вы можете закрыть его кнопкой X. И я не могу заставить работать кнопку.
<div class="modal visible-phone" id="myModal">
<div class="modal-header">
<button class="close" data-dismiss="modal">×</button>
<h3>text introductory<br>want to navigate to...</h3>
</div>
<div class="modal-body">
<ul class="nav">
<li> ... list of links here </li>
</ul>
</div>
</div>
Внизу html я помещаю jquery.js (первый), bootstrap.modal.js и bootstrap.transition.js. Фактически все модули bootstrap js (чтобы не пропустить включение). Я не разбираюсь в js ..
Пожалуйста, простите меня, если я задал действительно глупый вопрос. Я не смог найти ответ на эту конкретную ситуацию в журнале.
источник
$('#myModal').modal('show')
у меня работает, а у hide - нет.$('#myModal').modal('toggle');
вместо этогоУ меня возникли проблемы с закрытием модального диалога начальной загрузки, если он был открыт с помощью:
$('#myModal').modal('show');
Я решил эту проблему, открыв диалог по следующей ссылке:
<a href="#myModal" data-toggle="modal">Open my dialog</a>
Не забываем инициализацию:
$('#myModal').modal({show: false});
Я также использовал следующие атрибуты для кнопки закрытия:
data-dismiss="modal" data-target="#myModal"
источник
Добавьте класс hide в модальный
<!-- Modal Demo --> <div class="modal hide" id ="myModal" aria-hidden="true" >
Код Javascript
<!-- Use this to hide the modal necessary for loading and closing the modal--> <script> $(function(){ $('#closeModal').click(function(){ $('#myModal').modal('hide'); }); }); </script> <!-- Use this to load the modal necessary for loading and closing the modal--> <script> $(function () { $('#myModal').modal('show'); }); </script>
источник
.modal ('hide') вручную скрывает модальное окно . Используйте следующий код, чтобы закрыть модель начальной загрузки
$('#myModal').modal('hide');
Взгляните на рабочий код здесь
Или
Попробуйте здесь
Показать фрагмент кода
$(function () { $(".custom-close").on('click', function() { $('#myModal').modal('hide'); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> <!-- Button trigger modal --> <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal"> Launch demo modal </button> <!-- Modal --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title" id="myModalLabel">Modal title</h4> </div> <div class="modal-body"> <a class="custom-close"> My Custom Close Link </a> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Save changes</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal -->
источник
Попробуйте указать именно модальное окно, которое кнопка должна закрывать с помощью data-target. Итак, ваша кнопка должна выглядеть следующим образом -
<button class="close" data-dismiss="modal" data-target="#myModal">×</button>
Кроме того, вам понадобится только bootstrap.modal.js, чтобы вы могли безопасно удалить остальные.
Изменить: если это не сработает, удалите класс видимого телефона и протестируйте его в браузере своего ПК, а не на телефоне. Это покажет, получаете ли вы ошибки javascript или, например, это проблема совместимости.
Изменить: демонстрационный код
<html> <head> <title>Test</title> <link href="/Content/bootstrap.min.css" rel="stylesheet" type="text/css" /> <script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> <script src="/Scripts/bootstrap.modal.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function () { if( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) ) { $("#myModal").modal("show"); } $("#myModalClose").click(function () { $("#myModal").modal("hide"); }); }); </script> </head> <body> <div class="modal hide" id="myModal"> <div class="modal-header"> <a class="close" id="myModalClose">×</a> <h3>text introductory<br>want to navigate to...</h3> </div> <div class="modal-body"> <ul class="nav"> <li> ... list of links here </li> </ul> </div> </div> </body> </html>
источник
code
<div class = "modal visible-phone" id = "myModal"> <div class = "modal-header"> <button class = "close" data-dismiss = "modal" data-target = "# myModal"> × </button> <h3> вводный текст <br> хотите перейти к ... </h3> </div> <div class = "modal-body"> <ul class = "nav"> <li> .. . список ссылок здесь </li> <li> link2 </li> <li> link3 </li> </ul> </div> </div>code
<div class="modal visible-phone" id="myModal"> <div class="modal-header"> <button class="close" data-dismiss="modal" data-target="#myModal">×</button> <h3>text introductory<br>want to navigate to...</h3> </div> <div class="modal-body"> <ul class="nav"> <li> ... list of links here </li> <li> link2 </li> <li> link3 </li> </ul> </div> </div>
Согласно документации, скрытие / переключение должно работать. Но это не так.
Вот как я это сделал
$('#modal-id').modal('toggle'); //Hide the modal dialog $('.modal-backdrop').remove(); //Hide the backdrop $("body").removeClass( "modal-open" ); //Put scroll back on the Body
источник
$("#modal-id").modal("toggle"); $(".modal-backdrop").fadeOut('fast',function(){ $("body").removeClass( "modal-open" ); $(".modal-backdrop").remove(); });
Примерь это ..
$('body').removeClass('modal-open'); $('.modal-backdrop').remove();
источник
У меня была такая же проблема на iphone или на рабочем столе, не удалось закрыть диалоговое окно при нажатии кнопки закрытия.
Я обнаружил, что
<button>
тег определяет кнопку с возможностью нажатия и необходим для указания атрибута типа для элемента следующим образом:<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
проверьте пример кода для модальных окон начальной загрузки на странице BootStrap javascript Page
источник
Если у вас одновременно отображается несколько модальных окон, вы можете указать целевое модальное окно для внутримодальной кнопки с атрибутами
data-toggle
иdata-target
:<div class="modal fade in" id="sendMessageModal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header text-center"> <h4 class="modal-title">Modal Title</h4> <small>Modal Subtitle</small> </div> <div class="modal-body"> <p>Modal content text</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default pull-left" data-toggle="modal" data-target="#sendMessageModal">Close</button> <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#sendMessageModal">Send</button> </div> </div> </div> </div>
Где-то за пределами модального кода у вас может быть еще одна кнопка переключения:
<a href="index.html#" class="btn btn-default btn-xs" data-toggle="modal" data-target="#sendMessageModal">Resend Message</a>
Пользователь не может нажать кнопку переключения в модальном режиме, пока эта кнопка скрыта, и она правильно работает с опцией
"modal"
для атрибутаdata-toggle
. Эта схема работает автоматически!источник
Вот фрагмент не только для закрытия модальных окон без обновления страницы, но и при нажатии клавиши ввода он отправляет модальные окна и закрывается без обновления.
У меня он настроен на моем сайте, где я могу иметь несколько модальных окон, и некоторые модальные окна обрабатывают данные при отправке, а некоторые нет. Что я делаю, так это создаю уникальный идентификатор для каждого модального окна, которое выполняет обработку. Например, на моей веб-странице:
HTML (модальный нижний колонтитул):
<div class="modal-footer form-footer"><br> <span class="caption"> <button id="PreLoadOrders" class="btn btn-md green btn-right" type="button" disabled>Add to Cart <i class="fa fa-shopping-cart"></i></button> <button id="ClrHist" class="btn btn-md red btn-right" data-dismiss="modal" data-original-title="" title="Return to Scan Order Entry" type="cancel">Cancel <i class="fa fa-close"></i></a> </span> </div>
jQUERY:
$(document).ready(function(){ // Allow enter key to trigger preloadorders form $(document).keypress(function(e) { if(e.which == 13) { e.preventDefault(); if($(".trigger").is(".ok")) $("#PreLoadOrders").trigger("click"); else return; } }); });
Как видите, эта отправка выполняет обработку, поэтому у меня есть этот jQuery для этого модального окна. Теперь предположим, что у меня есть еще один модальный файл на этой веб-странице, но обработка не выполняется, и поскольку одно модальное окно открыто одновременно, я помещаю другой
$(document).ready()
в глобальный скрипт php / js, который получают все страницы, и даю кнопке закрытия модального окна класс, называемый".modal-close"
:HTML:
<div class="modal-footer caption"> <button type="submit" class="modal-close btn default" data-dismiss="modal" aria-hidden="true">Close</button> </div>
jQuery (включая global.inc):
$(document).ready(function(){ // Allow enter key to trigger a particular button anywhere on page $(document).keypress(function(e) { if(e.which == 13) { if($(".modal").is(":visible")){ $(".modal:visible").find(".modal-close").trigger('click'); } } }); });
источник