javascript - 捕获 div 上的点击

标签 javascript jquery

我有这个代码(HTML 和 JS):

<body>
      <div class="container">
         <div class="modal fade" id="modalSubscriptionForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
            aria-hidden="true">
            <div class="modal-dialog" role="document">
               <div class="modal-content">
                  <div class="modal-header text-center">
                     <h4 class="modal-title w-100 font-weight-bold">Subscribe</h4>
                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                     <span aria-hidden="true">&times;</span>
                     </button>
                  </div>
                  <div class="modal-body mx-3">
                     <div class="md-form mb-5">
                        <i class="fas fa-user prefix grey-text"></i>
                        <input type="text" id="form3" class="form-control validate val1" name="val1">
                        <label data-error="wrong" data-success="right" for="form3">Title</label>
                     </div>
                     <div class="md-form mb-4">
                        <i class="fas fa-envelope prefix grey-text"></i>
                        <input type="email" id="form2" class="form-control validate val2" name="val2">
                        <label data-error="wrong" data-success="right" for="form2">Desc</label>
                     </div>
                     <div class="md-form mb-4">
                        <i class="fas fa-envelope prefix grey-text"></i>
                        <label data-error="wrong" data-success="right" for="form2">
                           Coordinates click: 
                           <div class="coorX"></div>
                           x 
                           <div class="coorY"></div>
                        </label>
                     </div>
                  </div>
                  <div class="modal-footer d-flex justify-content-center">
                     <button class="btn btn-indigo saveBtn">Send <i class="fas fa-paper-plane-o ml-1"></i></button>
                  </div>
               </div>
            </div>
         </div>
         <div class="scalize imgpo">
            <img src="img/jacket.png" alt="" class="target ">
            <div class="item-point" data-top="130" data-left="300" >
               <div><a href="#" class="toggle tooltips" title="<h1><b>Another</b> <em>one</em> here too 1</h1>" data-toggle="tooltip" data-placement="top" data-html="true" rel="tooltip"></a></div>
            </div>
            <div class="item-point" data-top="180" data-left="462" >
               <div><a href="#" class="toggle tooltips" title="<h1><b>Another</b> <em>one</em> here too 2</h1>" data-toggle="tooltip" data-placement="top" data-html="true" rel="tooltip"></a></div>
            </div>
            <div class="item-point"ot data-top="380" data-left="215">
               <div><a href="#" class="toggle tooltips" title="<h1><b>Another</b> <em>one</em> here too 3</h1>" data-toggle="tooltip" data-placement="top" data-html="true" rel="tooltip"></a></div>
            </div>
            <div class="item-point"ot  data-left="357"  data-top="458">
               <div><a href="#" class="toggle tooltips" title="<h1><b>xxxxx</b> <em>one</em> here too 3</h1>" data-toggle="tooltip" data-placement="top" data-html="true" rel="tooltip"></a></div>
            </div>
         </div>
      </div>
      <a href="" class="btn btn-default btn-rounded mb-4 formAdd" data-toggle="modal" data-target="#modalSubscriptionForm" style="display:none"></a>


      <script type="text/javascript">
         $(document).ready(function(){

         $('.imgpo').click(function(e) {
          var posX = $(this).position().left,posY = $(this).position().top;
          $('.coorX').html((e.pageX - posX -10));
          $('.coorY').html((e.pageY - posY -10));
          $('.formAdd').click();
         });

         $('.saveBtn').click(function(e) {
            var val1 = $(".val1").val(); 
            var val2 = $(".val2").val(); 
            alert('Save');
         });


              $('.scalize').scalize({
                  styleSelector: 'circle',
                  animationPopoverIn: 'flipInY',
                  animationPopoverOut: 'flipOutY',
                  animationSelector: 'pulse2'
              });


              const $tooltip = $('.tooltips');
         $tooltip.tooltip({
         html: true,
         trigger: 'click',
         placement: 'top',
         });
         $tooltip.on('show.bs.tooltip', () => {
         $('.tooltip').not(this).remove();
         });

          });            
      </script>

预览:http://serwer1356363.home.pl/pub/component/index2.html

单击图像后,会出现一个表单 - 它可以正常工作。

单击该点后,我打开工具提示和表单。这是错误。仅应显示工具提示。

如何解决?

我使用 Bootstrap 3。

最佳答案

您可以使用 ev.stopPropagation(); 这样点击就不会传递到父级 div。

$(".parent").on('click', function() { 
 console.log('clicked on parent');
})

$(".child").on('click', function(ev) {
 ev.stopPropagation();
 console.log('clicked on child');
})
.parent {
width: 100px;
height: 100px;
background-color: green;
}

.child {
width: 50px;
height: 50px;
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
  <div class="child">
  </div>
</div>

关于javascript - 捕获 div 上的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54145606/

相关文章:

javascript - JQuery 4按钮菜单,点击隐藏div并显示其他div,反之亦然

javascript - 页面加载时如何关注特定选项卡

javascript - 移动通信大会 : how to rerender on URL change

javascript - 解释为什么在 Javascript 中 false 和 modulus 总是等同于 true

javascript - 如何用 jQuery 替换 document.getElementById ('file-uploader' )?

javascript - 如何判断 Javascript 在哪里花费了最多时间?

javascript - 使用谷歌地图获取纬度和经度

javascript - 包含数据库中相关信息的打开模式

javascript - FileList 中的 Safari 错误?

javascript - 如何使用 Jquery 将数据发布到 iframe