了解data-dismiss属性在Bootstrap中的工作原理

时间:2016-01-06 06:52:28

标签: javascript jquery twitter-bootstrap twitter-bootstrap-3

我是Bootstrap的新手,我遇到了这个例子的问题:

<!-- Trigger the modal with a button -->
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Modal Header</h4>
      </div>
      <div class="modal-body">
        <p>Some text in the modal.</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>

  </div>
</div>

根据我的理解data-dismiss="modal"属性应该关闭模式,如果你点击它,但我不明白它在幕后的工作原理。我检查了官方文档:http://getbootstrap.com/javascript/#modals-examples,但没有解释。

4 个答案:

答案 0 :(得分:19)

隐藏功能以modal.js的方式实现。

this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))

基本上,它只是找到属性为data-dismiss且值为modal的元素。点击它会隐藏这些元素。

答案 1 :(得分:3)

完全在bootstrap.js中找到具有属性data-dismiss="modal"的元素并触发this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))。即它隐藏了元素,但是以更复杂的方式。

答案 2 :(得分:2)

如果您在一页打开的页面上同时使用多个模态,则用data-dismiss="modal"取消最上面的模态将隐藏所有活动模态。

答案 3 :(得分:1)

date替换为data-dismiss="modal"

您应该具有以下内容:

onclick="$('#modal_id').modal('hide');"

<button type="button" class="close" onclick="$('#modal_id').modal('hide');" aria-label="Close"> 将仅关闭放置它的特定模式。

请注意这是否有用。