jquery - jQuery 对话框中的单击事件发生两次?

标签 jquery events jquery-ui dom

我一直在处理一个奇怪的问题,即 .click() 事件在放置在 jQuery 对话框中时会发生两次。

下面是我的简单测试用例和 live example is here

  <div id="popup" style="display: none">
    <a href="javascript:void(0);" id="testlink">Test Link</a>
    <script type="text/javascript">
      $('#testlink').click(function(){
        alert("Test Link clicked");
        return 0;
      });
    </script>
  </div>
  <script type="text/javascript">
  $(document).ready(function(){
    $('#popup').css('display','block');
    var h=($(window).height()+0.0)*0.9;
    var w=($(window).width()+0.0)*0.9;
    if(w >= 800){
      w = 800;
    }
    $('#popup').dialog({
      autoOpen: true,
      width: w,
      height: h,
      modal: true,
      open: function(event,ui){
        $('body').css('overflow', 'hidden');
      },
      close: function(event,ui){
        $('body').css('overflow', 'scroll');
      }
    });
  });
  </script>

最佳答案

移动<script>popup 之外注册点击事件的 block div,我认为当 div 变得可见时,JS 会再次被解析......

关于jquery - jQuery 对话框中的单击事件发生两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3142504/

相关文章:

javascript - 在找出为元素定义了哪些 JavaScript 事件之后,我们如何进行?

c# - 用户帮助的所有控件的全局事件处理程序

javascript - 如何在动态创建的 jQuery UI 对话框中使用日期选择器?

javascript - CSS 关键帧移动有延迟

javascript - 如何在ajax之后执行特定代码

jQuery:在构造函数中不关闭标签的风险

javascript - 这个构造在 javascript 中做什么

javascript - 为什么这段 jQuery 代码不起作用?

javascript - 在文档中的所有元素完全加载后,触发 JS 事件的最可靠方法是什么?

jquery - 工具提示不适用于 JQuery 1.11.2