我有一个引导模式,是通过两个不同的按钮点击打开的。如果instatnce满足给定的条件:
$('#buttonName').on('click', function (e) {
var arg = something;
if (condition) {
$('#modalName').modal('show');
} else { someFunction(arg); }
});
$('#otherButton').on('click', function (e) {
var arg = something;
if (condition) {
$('#modalName').modal('show');
} else { someFunction(arg); }
});
此处不能使用HTML数据属性。所以就像这样:
<button id="buttonName" class="modalBtn" data-toggle="modal" data-target="#modalName" data-caller="button1"></button>
将不会工作,因为来自on.click事件的if语句将被省略,并且无论条件如何,模式都是打开的,这是我不想要的。
该模式包含一个按钮
<div id="logoutBoxModal" class="modal fade bd-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true" data-backdrop="true" keyboard:="true">
<div id="" class="modal-content">
<button id="modalButton"></button>
</div>
</div>
这应该会根据两个按钮中的哪个按钮打开它来做一些事情。
我试过这个:
//$('#myModal') alternatively
$('.modal').on('show.bs.modal', function (e) {
var $trigger = e.relatedTarget;
console.log($trigger);
});
但它总是返回未定义的。
我能找到的所有答案都涉及到这里不能使用的数据属性的用法。
总而言之,我所需要的就是如何将一个值传递给模态,这样它就可以告诉按钮它应该做什么,而所有这些都必须通过javascript/jquery来完成。
谢谢
更新-应答
返回的$trigger
变量是Javascript,不是jQuery,它的数据可以用Javascript访问:
<button id="buttonName" class="modalBtn" data-caller="button1"></button>
var $trigger = e.relatedTarget.target;
var data = $trigger.dataset.caller;
console.log(data);
与jQuery相反:
...
var data = $trigger.data("caller");
console.log(data);
https://stackoverflow.com/questions/52285889
复制相似问题