【问题标题】:append div on click not working [duplicate]在单击时附加 div 不起作用[重复]
【发布时间】:2015-01-06 10:24:02
【问题描述】:

添加div 后,onclick 不起作用。请帮帮我。

jQuery(document).ready(function() {
    jQuery(".chack").click(function(){
        jQuery( "#pc_form" ).append('<br><div class="apply">apply</div>');
    });

    jQuery(".apply").click(function(){  
        alert();    
    }); 
});
<div class="pc_form" id="pc_form">  
    <div class="apply">apply here</div>
</div>
<br /><br />
<div class="chack">click</div>  

【问题讨论】:

  • 动态插入的元素需要委托事件处理程序
  • 请告诉我怎么办
  • 要通知 adeneo,请使用 @username 语法:“@adeneo”(请注意,此评论应通知他,因此无需再向他发送垃圾邮件)。
  • 那些&lt;div&gt;s 无法通过键盘访问。用真正的&lt;button&gt;s 替换它们以解决问题。 w3.org/TR/UNDERSTANDING-WCAG20/keyboard-operation.html
  • @DavidThomas - 我收到了通知,谢谢! Nikhil,要了解委托事件处理程序,请查看下面的答案,副本,并进行搜索,SO 上有成千上万的答案可以解释这一点。此外,jQuery 有文档 -> learn.jquery.com/events/event-delegation

标签: javascript php jquery html css


【解决方案1】:
$('#pc_form').live("click", ".apply", function() {  alert(); });

现场活动工作

【讨论】:

    【解决方案2】:

    您需要使用事件委托将事件附加到动态添加的元素:

    jQuery("body").on('click','.apply',function(){  
       alert('tst');    
    }); 
    

    【讨论】:

      【解决方案3】:

      div.apply是用jquery添加的,你必须把事件绑定到它上面。试试用-

      jQuery( "#pc_form" ).append('<br><div class="apply">apply</div>').bind('click', function(e) {
         e.stopPropagation();
         alert('hello');
      })
      

      【讨论】:

      • 你好,它正在工作,但多次调用
      • 可能是因为事件传播。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多