按钮调用模态对话框:单击按钮时,将触发事件,结果事件引用 e.relatedTarget 未定义。那么,如何从处理程序中获取调用按钮呢? e 似乎不包含对调用按钮的任何引用。
<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Modal title</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" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
j查询:
$('#myModal').on('show.bs.modal', function (e) {
console.log(e.relatedTarget) // do something...
})
谢谢 Geo1004.. 我已经在使用 JS 来触发模态上的“显示”事件,但我错过了第二个参数。所以 event.relatedTarget 是未定义的。
如果其他人走 JS 路线(而不是使用数据属性),我会确保您将按钮作为 jQuery 对象发送 -
$( "#myModal" ).modal( "show", $( "#buttonBeingClicked" ) );
看看下面的Bootply 例子.
运行节目时似乎包含对
e.relatedTarget
.的正确引用
$('#myModal').on('show.bs.modal', function (e) {
var button = e.relatedTarget;
if (button != null)
{
alert("Launch Button ID='" + button.id + "'");
}
})
看看Bootply 示例,看看您自己的代码是否与它有偏差。 (我直接从您提供的 link 复制了原始的 Bootstrap 示例代码片段。)
希望对您有所帮助。祝你好运。
这是一个解决方法。您可以改为使用 JS 打开模态,并且将设置 relatedTarget。 您不应该错过将按钮作为“模态”方法的第二个参数传递。
您将能够传递数据引用(这里是地址-目标)
$('.listing_btn').on 'click', ->
$('.modal').modal('show', $(@))
$('#modal').on 'show.bs.modal', (event)->
button = $(event.relatedTarget)
address_id = button.data('address-target')
console.log address_id
我有同样的问题,浪费了整个晚上来解决它。 我的 bootstrap.js 版本太旧了,$(event.relatedTarget) 不适用于 'show.bs.modal' 事件。 任何有同样问题的人都应该先检查他的引导程序版本。 然后简单地坚持官方网站的例子: http://getbootstrap.com/javascript/#modals-related-target 你会在 $(event.relatedTarget) 中找到你的参考。
$('#myModal').on('show.bs.modal', function (e) {
console.log($(e.relatedTarget)); // You will get the element you want! Cheers
})
$('#myModal').modal('show',$('#myButton'))
$('#myModal').on('show.bs.modal',function(e){
console.log($(e.relatedTarget))
})
123 1df2 3g ds1 32 1231 12g213 dgdg 1 31313131 331231313gd 1131231