Переключение данных отключить теги внутри - PullRequest
0 голосов
/ 08 октября 2018

У меня есть div с data-toggle="modal" data-target="#myModal", он работает нормально.Однако когда у меня есть ссылки в div, они тоже активируют модал.Есть ли способ отключить теги от открытия модальных?

.team-section-inner{
  border: 1px solid;
}
 <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<div class="team-section-inner" data-toggle="modal" data-target="#myModal">
  <h1>activates modal</h1>
  <a href="#footer">Activates modal but needs to be disabled</a>
</div>

<!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Ваше событие бурлит.Вам нужно отменить событие, когда вы нажимаете на a в самом div.Вам нужен JQuery для этого, хотя.Вы можете остановить это, используя stopPropagation().Документы здесь .

Здесь - хорошее объяснение того, что такое Event Bubbling.

$('.team-section-inner a').on('click', function(e){
  e.stopPropagation();
})
.team-section-inner{
  border: 1px solid;
}
<meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<div class="team-section-inner" data-toggle="modal" data-target="#myModal">
  <h1>activates modal</h1>
  <a href="#footer">Activates modal but needs to be disabled</a>
</div>

<!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
0 голосов
/ 08 октября 2018

Нет, вы не можете;просто исправьте это, добавив div перед h1, который вызывает модальное значение

<div class="team-section-inner">
  <div data-toggle="modal" data-target="#myModal">
    <h1>activates modal</h1>
  </div>
  <a href="#footer">Activates modal but needs to be disabled</a>
</div>
...