【发布时间】:2013-01-10 20:51:17
【问题描述】:
Twitter Bootstrap 能够“通过数据属性”调用模式,这很好,但我不知道如何关闭它们或替换按钮的事件。
通过属性设置示例:
<button id="launch-btn" type="button" data-toggle="modal" data-target="#myModal">
Launch modal
</button>
我试过了:
$('#launch-btn').off('click');
$('#launch-btn').unbind('click');
$('#launch-btn').on('click', function(e){e.preventDefault();});
但所有似乎仍然打开模态。如果满足条件,我想阻止默认模式打开并用另一个操作替换它。我知道我可以使用 modal 的 show 事件来阻止显示,但我不想在这里这样做,我想通过按钮来控制行为。
我也意识到使用 JS 而不是让引导程序通过数据属性处理它可能更容易处理动态模式的创建,但我现在是一个好奇的乔治,我试图发现什么我做错了。
【问题讨论】:
-
查看 bootstrap-modal.js.. 这就是他们绑定点击事件的方式
$(document).on('click.modal.data-api', '[data-toggle="modal"]' -
@wirey:是的——我也做了同样的事情。我对使用该插件的容易程度感到惊讶。我正在回答中,因为使用
off确实有效。我正在测试如何使用按钮的 ID。 -
我想知道event.stopImmediatePropagation() 是否可以满足您的需求,因为事件处理程序已绑定到文档。 也许不是似乎委托事件无法停止传播
-
@wirey:我认为我们正在做同样的研究——我得出了同样的结论。我还没有尝试通过属性处理来使用 Tony 的建议(听起来理论上可行);否则,我将放弃并重新评估当前的文档结构。如果我必须使用比我预期更多的自写 JavaScript,我还不如做对。
标签: jquery twitter-bootstrap modal-dialog