确定哪个按钮打开了Bootstrap 3模态

nar*_*yan 6 html javascript jquery twitter-bootstrap twitter-bootstrap-3

我有以下Bootstrap按钮:

<button type="button" class="btn btn-primary btn-lg" data-button="create" data-toggle="modal" data-target="#modal">Create</button>
<button type="button" class="btn btn-primary btn-lg" data-button="delete" data-toggle="modal" data-target="#modal">Delete</button>
Run Code Online (Sandbox Code Playgroud)

这是模式:

<div class="modal fade" id="modal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title">Modal title</h4>
      </div>
      <div class="modal-body">
        <p>One fine body&hellip;</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary" data-dismiss="modal">Save changes</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
Run Code Online (Sandbox Code Playgroud)

如何确定触发模态打开的按钮?

具体来说,我需要data-button属性.

Jos*_*ier 20

您可以收听show.bs.modal/ shown.bs.modalevents中的任何一个.

在函数中,事件relatedTarget附加了一个属性.您可以使用它来确定触发模式打开的按钮.

Bootstrap 3 - 模态事件:

调用show实例方法时会立即触发此事件.如果由单击引起,则单击的元素可用作relatedTarget事件的属性.

$('.modal').on('show.bs.modal', function (e) {
    var $trigger = $(e.relatedTarget);
});
Run Code Online (Sandbox Code Playgroud)

这里的例子

..如果要访问该data-button属性,请使用:

$(e.relatedTarget).data('button');
Run Code Online (Sandbox Code Playgroud)

相反,如果要确定哪个按钮导致模式关闭,请参阅此答案.