javascript - 复制元素时,jQuery 单击事件不会触发

标签 javascript jquery html

我有一个隐藏的 div,其中有一些内容:

<div id="email_content_hidden">
    <div id="email_form">
        <label>De: <span>*</span></label>
        <input type='email' id='email_from' placeholder='De' required="true"/>
        <label>A: <span>*</span></label>
        <input type='email' id='email_to' placeholder='Destinataire' required="true"/>
        <label>Sujet: <span>*</span></label>
        <input type='text' id='email_subject' placeholder='Sujet' required="true"/>
        <label>Message:</label>
        <textarea id='email_message' placeholder='Votre Message'></textarea>
        <div class='email_submit'>Envoyer email</div><div id='email_returnmessage'></div>
    </div>
</div>

然后我有一个触发 jsPanel 的按钮:

$('#new_document').click (function () {
    var content = $('#email_content_hidden').html();

    $.jsPanel({
        content:        content,
        position:       "center",
        theme:          "success",
        title:          "Nouveau document/email",
        size:           {   width:  function(){ return $(window).width()*0.75 }, 
                            height: function(){ return $(window).height()*0.75 } },
        toolbarFooter:  "<i>Popup footer</i>",
    });
});

如您所见,我将隐藏 div 的代码复制到我的 jsPanel 中。

问题是分配给的点击事件没有触发:

$('.email_submit').click(function() {
   console.log('submit email');
});

有什么想法吗?

最佳答案

您必须委托(delegate)该事件,否则新添加到 DOM 的元素将不会绑定(bind)该事件:

$(document).on('click', '.email_submit', function() {
   console.log('submit email');
});

关于javascript - 复制元素时,jQuery 单击事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33485138/

相关文章:

javascript - 如何在不同的文件中将状态传递给一个组件到另一个组件

javascript - 将 ExtJS 单选按钮分组为不同名称以保存在数据库中

javascript - 滚动到列表内的元素 ID

javascript - 如何在 html 文件中打印一磅 "£"?

javascript - 为什么从 UpdatePanel 内部打开时弹出窗口不关闭

javascript - 将特定深度的innerHTML提取到DOM树结构中

html - 动画 div 高度扩展不稳定

html - 如何在 div 中显示内联链接而不跨越另一行?

javascript - 打印 IIFE 的函数名私有(private)方法

javascript - 从客户端 JavaScript AJAX 调用 WebAPI GET 方法,出现错误