我在使用Bootstrap的关闭模态框时遇到问题。当我打开一个包含数据的模态窗口(根据触发按钮不同显示不同内容),就像这个例子中展示的一样:http://getbootstrap.com/javascript/#modals。
这个没问题,但是如果我关闭模态框然后使用另一个按钮打开它,当我点击发送按钮时,它会在控制台中打印出第一个模态框和这个模态框的收件人值。但是我只需要打印最后一个收件人的值。 我不明白为什么它会堆积以前模态框关闭的事件。 这是我的两个按钮的 jQuery 代码:
非常感谢,希望有人能够帮助我。 https://jsfiddle.net/DTcHh/28480/
<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/