获取打开Bootstrap模态框的点击元素

11

我怎么知道是哪个按钮触发了打开Bootstrap模态框?

<a href="#" data-toggle="modal" data-target="#myModal">
    Button 1
</a>  
<a href="#" data-toggle="modal" data-target="#myModal">
    Button 2
</a>

JavaScript

$('#myModal').on('shown.bs.modal', function () {
  var triggerElement = ???
})
1个回答

23
这个内容的文档在这里记录。
$('#myModal').on('shown.bs.modal', function (event) {
     var triggerElement = $(event.relatedTarget); // Button that triggered the modal
});

编辑: 如评论中所述,如果按钮是动态生成的,我们可以将事件侦听器附加到文档:

$(document).on('shown.bs.modal', '#myModal', function (event) {
     var triggerElement = $(event.relatedTarget); // Button that triggered 
});

是的,我的问题在于按钮是动态生成的,所以这个方法不起作用。最终我使用了 $(document).on('shown.bs.modal', '#myModal', function (event) {...} - tocqueville
@FrancescoLorenzetti84 好的,我会更新答案以涵盖这种情况。 - tmg
我发现 'shown.bs.modal' 会添加延迟,所以为了避免这种情况,我们应该使用 'show.bs.modal'。 - COS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接