我有一个动态数量的按钮,其中包含.btn-trash.
类我使用$(this)
根据它在dom中的位置点击任意按钮执行一些代码。我想修改它以在单击相同按钮时打开Bootstrap确认模式窗口,并在确认此模式时执行相同的代码。我不能再使用$(this)
,因为我不在.btn-trash
在dom中的位置,而是在我的模态中的新确认按钮的上下文中。我现在很难弄清楚哪个.btn-trash
被点击了,以便执行我的逻辑。有没有办法做到这一点?谢谢。
标记:
<button class="btn btn-primary btnblue btn-trash" data-toggle="modal" data-target="#delete-modal">
<span class="glyphicon icon-trash"></span>
</button>
<div class="modal fade" id="delete-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Are you sure?</h4>
</div>
<div class="modal-body">
<p>text</p>
</div>
<div class="modal-footer text-left">
<a class="btn btn-secondary btn-delete-plan" data-dismiss="modal">Ok</a>
<a class="btn btn-default" data-dismiss="modal">Cancel</a>
</div>
</div>
</div>
</div>
脚本:
$(document).on('click', '.btn-trash', function () {
//moved initial logic from here to '.btn-delete-plan' click
});
$(document).on('click', '.btn-delete-plan', function () {
//target the '.btn-trash' that was initially clicked and execute code
//based on its position in the dom
});
答案 0 :(得分:1)
正如@Jasen所说,只需在.btn-trash点击处理程序中保存一个引用。
var $lastClicked;
$(document).on('click', '.btn-trash', function () {
$lastClicked = $(this);
});
$(document).on('click', '.btn-delete-plan', function () {
//use $lastClicked
});