通过普通函数而不是 jQuery 对象方法调用打开 Bootstrap 模式
Open a Bootstrap modal via a plain function not a jQuery object method call
我可以在 jQuery 对象上通过 方法 打开 Bootstrap 的 modal dialogs:
$('#myModal').modal(options)
但是在我的代码中,我已经将模态 div
的普通 DOM Element
检索为
var myModal = document.querySelector("#myModal")
但是这个 Element
对象没有 Bootstrap 的 modal
方法。有没有办法使用这个 Element 对象和 not 来调用 jQuery 选择器?那么是否可以将 Bootstrap 的 modal
代码作为普通的 函数 以元素作为参数来调用?我在想
modal(myModal, options)
非常感谢任何指点!
没有办法做类似 modal(myModal, options)
的事情,因为 Bootstrap(像所有插件一样)扩展了 jQuery 函数原型。
当Bootstrap的JavaScript第一次运行时,它使用类似于$.fn.modal
的代码扩展jQuery的原型函数,然后Bootstrap分配该新 jQuery 函数的模态功能。
现在,如果您已经将模态元素分配给 JavaScript 变量,则可以将该变量用作 jQuery 选择器并显示、切换或隐藏或任何您想要的操作想。我不知道这样做是否有任何好处,但这是可能的。
在下面的演示中,我使用 JavaScript 在页面加载时打开模式:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<script>
const myModalElement = document.getElementById('myModal');
$(myModalElement).modal('show');
/* $('#myModal').modal('show'); */
</script>
我可以在 jQuery 对象上通过 方法 打开 Bootstrap 的 modal dialogs:
$('#myModal').modal(options)
但是在我的代码中,我已经将模态 div
的普通 DOM Element
检索为
var myModal = document.querySelector("#myModal")
但是这个 Element
对象没有 Bootstrap 的 modal
方法。有没有办法使用这个 Element 对象和 not 来调用 jQuery 选择器?那么是否可以将 Bootstrap 的 modal
代码作为普通的 函数 以元素作为参数来调用?我在想
modal(myModal, options)
非常感谢任何指点!
没有办法做类似 modal(myModal, options)
的事情,因为 Bootstrap(像所有插件一样)扩展了 jQuery 函数原型。
当Bootstrap的JavaScript第一次运行时,它使用类似于$.fn.modal
的代码扩展jQuery的原型函数,然后Bootstrap分配该新 jQuery 函数的模态功能。
现在,如果您已经将模态元素分配给 JavaScript 变量,则可以将该变量用作 jQuery 选择器并显示、切换或隐藏或任何您想要的操作想。我不知道这样做是否有任何好处,但这是可能的。
在下面的演示中,我使用 JavaScript 在页面加载时打开模式:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<script>
const myModalElement = document.getElementById('myModal');
$(myModalElement).modal('show');
/* $('#myModal').modal('show'); */
</script>