リンクをクリックしたときにモーダルを開きたい。残念ながら、リンクのHTMLを変更できませんでした。 href
の内容のみを変更できました。
このような:
<a href="#Modal">Open modal</a>
データ属性やその他のHTMLを追加できませんでした。
ドキュメントでは、JavaScriptでモーダルを開く方法を見つけました。私のサイトにこのコードを追加しました:
$('#Modal').modal();
動作しますが、ページが読み込まれるとすぐにモーダルが開きます。リンクをクリックした後に開く必要があります。
これを行う方法はありますか?
これが私のモーダルです:
<div class="modal" id="Modal" tabindex="-1" role="dialog" aria-labelledby="ModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<p class="h5 modal-title" id="ModalTitle">Modal Title</p>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
Content
</div>
</div>
</div>
</div>
a[href$="#Modal"]
でクリックイベントをトリガーします。
$('a[href$="#Modal"]').on( "click", function() {
$('#Modal').modal('show');
});
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<!-- Trigger the modal with a button -->
<a href="#Modal" class="btn btn-info btn-lg">Open modal</a>
<!-- Modal -->
<div id="Modal" class="modal fade" 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 class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
EIDT:myModalをModalに変更
リンクをクリックした後に開く必要があります。
そのため、リンクがクリックされたかどうかを確認する必要があります。
jQueryは要素を選択する多くの方法を提供します。 http://api.jquery.com/category/selectors/
$('a[href$="#Modal"]').on( "click", function() {
$('#Modal').modal();
});`
これを試して
<!-- Trigger the modal with a button -->
<a href="#" class="btn btn-info btn-lg">Open Modal</a>
<!-- Modal -->
<div id="myModal" class="modal fade" 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 class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
$('a').on( "click", function() {
$('#myModal').modal('show');
});