首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >引导模式对话框,未定义show.bs.modal事件relatedTarget。如何获取被点击的元素?

引导模式对话框,未定义show.bs.modal事件relatedTarget。如何获取被点击的元素?
EN

Stack Overflow用户
提问于 2014-05-27 21:57:58
回答 5查看 51K关注 0票数 25

按钮调用模式对话框:当按钮被点击时,事件被触发,结果事件引用e.relatedTarget是未定义的。那么,如何从处理程序获取调用按钮呢?E似乎不包含对调用按钮的任何引用。

代码语言:javascript
复制
<!-- 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">&times;</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>

jQuery:

代码语言:javascript
复制
$('#myModal').on('show.bs.modal', function (e) {
  console.log(e.relatedTarget) // do something...
})

参考:http://getbootstrap.com/javascript/#modals

EN

回答 5

Stack Overflow用户

发布于 2015-08-18 04:14:00

谢谢Geo1004..。我已经使用JS在模式上触发了"show“事件,但是我遗漏了第二个参数。所以event.relatedTarget是未定义的。

如果其他人使用JS路线(而不是使用数据属性),我会确保您将按钮作为jQuery对象发送-

代码语言:javascript
复制
$( "#myModal" ).modal( "show", $( "#buttonBeingClicked" ) );
票数 24
EN

Stack Overflow用户

发布于 2014-05-28 01:56:52

看一下下面的Bootply example

在运行时,显示事件似乎包含对e.relatedTarget的正确引用。

代码语言:javascript
复制
$('#myModal').on('show.bs.modal', function (e) {
    var button = e.relatedTarget;
    if (button != null)
    {
        alert("Launch Button ID='" + button.id + "'");
    }
})

看一看Bootply example,看看您自己的代码是否偏离了它。(我直接从您提供的link复制了原始的Bootstrap示例代码片段。)

我希望这能帮到你。祝好运。

票数 22
EN

Stack Overflow用户

发布于 2015-08-18 00:31:23

这是一种解决方法。您可以使用JS打开模式,并设置relatedTarget。您不应该错过将按钮作为'modal‘方法的第二个参数传递。

您将能够传递数据引用(这里是address-target)

代码语言:javascript
复制
$('.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 

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23891478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档