指向bootstrap模态开口上的锚点

时间:2017-07-21 06:59:03

标签: html twitter-bootstrap anchor

我想打开一个帮助模式,但根据点击的链接,我需要像在FAQ页面上那样关注特定的锚点。 在页面上,我们将在href链接上添加#myAmazingTitle(例如<a href="http://....#myAmazingTitle">FAQ</a>),以便将显示重点放在特定的dom元素上。

<h1>My first title</h1>
<h1 id="myAmazingTitle">My Amazing Title</h1> <== Display will be focused on this title
....

我希望使用bootstrap模式具有相同的行为。

是否可能以及如何?

此问题为Fiddle

1 个答案:

答案 0 :(得分:1)

使用relatedTarget和HTML data-*属性指定目标元素选择器(或锚点),并将此值发送给shown.bs.modal事件的处理程序。请参阅下面的使用示例。

$('#exampleModal').on('shown.bs.modal', function(e) {
  var recipient = $(e.relatedTarget).data('focus');
  $(this).find( recipient ).focus();  
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<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">&times;</span></button>
        <span class="modal-title" id="exampleModalLabel">Registration form</span>
      </div>
      <div class="modal-body">
        <form>
          <div class="form-group">
            <label for="EmailInput">Email address</label>
            <input type="email" class="form-control" id="EmailInput" placeholder="Email">
          </div>
          <div class="form-group">
            <label for="PassInput">Password</label>
            <input type="password" class="form-control" id="PassInput" placeholder="Password">
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Register</button>
      </div>
    </div>
  </div>
</div>

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-focus="#EmailInput">Type Email</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-focus="#PassInput">Type Password</button>