【发布时间】:2017-05-24 18:23:32
【问题描述】:
我对引导程序中的关闭模式有疑问。当我打开带有数据的模态窗口时(根据触发按钮改变模态内容)。这是http://getbootstrap.com/javascript/#modals中的例子
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
...more buttons...
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<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">×</span></button>
<h4 class="modal-title" id="exampleModalLabel">New message</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="control-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="control-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" id="btnclose" data-dismiss="modal">Close</button>
<button type="button" id="btnsend" class="btn btn-primary">Send message</button>
</div>
</div>
</div>
</div>
这没关系,但是如果我关闭模态并使用另一个按钮打开,当我单击发送按钮时,它会在控制台中打印第一个模态和此模态的接收者值。但我只需要打印最后一个收件人值。 我不明白为什么它将前一个模式关闭的事件堆叠起来。 这是我的两个按钮的 jQuery 代码:
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('whatever') // Extract info from data-* attributes
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
var modal = $(this)
modal.find('.modal-title').text('New message to ' + recipient)
modal.find('.modal-body input').val(recipient)
$("#btnsend").one("click", function(){
console.log('Pinchado')
console.log(recipient)
})
$("#btnclose").one("click", function(){
console.log('Cerrando...')
})
$('#exampleModal').on('hidden.bs.modal', function (e) {
console.log('Cerrada');
})
})
非常感谢你,我希望有人能帮助我。 https://jsfiddle.net/DTcHh/28480/
【问题讨论】:
-
对我来说只打印最后一个模态收件人。
标签: jquery twitter-bootstrap bootstrap-modal