【问题标题】:How to properly trigger default action on a bootstrap dialog?如何正确触发引导对话框的默认操作?
【发布时间】:2016-12-01 07:53:10
【问题描述】:

关于 SO 的大多数答案要么是关于如何激活模式对话框,要么是关于解雇的工作原理。

但我发现缺少的是如何触发默认按钮所表示的操作。

例如,

此对话框的默认操作是“保存”。

这里是html标记

<!-- Modal -->
<div class="modal fade" id="myModal" 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">&times;</span></button>
        <h4 class="modal-title">Dialog</h4>
      </div>
      <div class="modal-body">
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" id="btn-save" class="btn btn-primary btn-save">Save</button>
      </div>
    </div>
  </div>
</div>

如果我调用$('#myModal).modal('show'),就会出现对话框。

如果我点击右上角的叉号或“关闭”按钮,对话框将按预期关闭。

但是,当我按下“保存”时,什么也没有发生。

我使用了一种迂回的方式来实现它:

它是用咖啡脚本编写的。

$('#myModal).on('click', _.bind(@_handleSave, @))
$('#myModal).modal('show')

然后在_handleSave里面,

_handleSaveProfile: (data) ->

  return unless data.target.id is 'btn-save'
  # Do saving
  # ...

我认为这不是正确的方法,因为它会拦截每个点击事件。

实现这个功能的正确方法是什么?

【问题讨论】:

    标签: javascript twitter-bootstrap coffeescript modal-dialog


    【解决方案1】:

    将点击事件绑定到按钮而不是模式:

    $('#myModal').modal('show')
    $('#btn-save').on('click', _.bind(@_handleSave, @))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      相关资源
      最近更新 更多