Bootstrap modal - близкий модальный, когда нажата кнопка "вызвать действие"
У меня есть внешняя ссылка внутри моего модального кода, и я хочу, чтобы модальная скрыть после того, как пользователь нажал на ссылку. Как это сделать?
Вот мой код:
<div class="modal hide fade" id="modalwindow">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Title</h3>
</div>
<div class="modal-body">
<p>You need to search on google for that.</p>
</div>
<div class="modal-footer">
<a id="closemodal" href="#" onclick="location.href='https://www.google.com'; return false;" class="btn btn-primary" target="_blank">Launch google.com</a>
</div>
</div>
<script type="text/javascript">
$('#closemodal').modal('hide');
</script>
Ответы
Ответ 1
Вам нужно привязать вызов модального скрыть к событию click
:
$('#closemodal').click(function() {
$('#modalwindow').modal('hide');
});
Также убедитесь, что событие клика связано после того, как документ закончил загрузку:
$(function() {
// Place the above code inside this block
});
Ответ 2
Удалите script и измените HTML:
<a id="closemodal" href="https://www.google.com" class="btn btn-primary close" data-dismiss="modal" target="_blank">Launch google.com</a>
EDIT: Обратите внимание, что в настоящее время это не будет работать, так как эта функция еще не существует в бутстрапе. См. здесь проблему.
Ответ 3
Используйте data-dismiss="modal"
. В версии Bootstrap я использую v3.3.5, когда data-dismiss="modal"
dismiss data-dismiss="modal"
добавляется к желаемой кнопке, как показано ниже, она красиво вызывает мою внешнюю функцию Javascript (JQuery) и волшебным образом закрывает модальное окно. Это так сладко, я волновался, что мне придется вызывать какое-то модальное скрытие в другой функции и связать ее с реальной работающей функцией.
<a href="#" id="btnReleaseAll" class="btn btn-primary btn-default btn-small margin-right pull-right" data-dismiss="modal">Yes</a>
В каком-то внешнем файле скрипта, и в моем готовом документе есть, конечно, функция для щелчка по этому идентификатору ID
$("#divExamListHeader").on('click', '#btnReleaseAll', function () {
// Do DatabaseMagic Here for a call a MVC ActionResult
Ответ 4
Сделайте как показано.
$(document).ready(function(){
$('#myModal').modal('show');
$('#myBtn').on('click', function(){
$('#myModal').modal('show');
});
});
<br/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="#" onclick="location.href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'; return false;">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Activate Modal with JavaScript</h2>
<!-- Trigger the modal with a button -->
<button type="button" class="btn btn-info btn-lg" id="myBtn">Open Modal</button>
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p>Some text in the modal.</p>
</div>
</div>
</div>
</div>
</div>