我有一个引导模式,是打开两个不同的按钮点击。
如果安装满足给定条件:
$('#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>
不起作用,因为
声明来自
打开。单击
然后忽略事件,不管条件如何,modal都是打开的,这是我不想要的。
<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);
});
但它总是回来
未定义
我能找到的所有答案都涉及数据属性的用法,这里不能使用。
谢谢
更新-答案
$trigger
<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);