应用clone()函数后jQuery功能丢失

时间:2016-10-04 16:17:12

标签: javascript jquery dom clone

我正在制作一个带有注册,登录和忘记密码表单的模式,并且我通过隐藏和显示来玩div。关闭模式时,我做了trick克隆内容,但内部没有任何元素响应分配给它们的jQuery。

这是克隆的代码:

var login_modal = $('.md-modal.login-modal');
var originalState = login_modal.clone();

login_modal.find('.md-close').click(function(){
   login_modal.replaceWith(originalState);
});

这是克隆后无法运行的代码示例:

$('#email-register').click(function() {
   $('#multi-login-box').hide();
   $('#register-box').show();
});

2 个答案:

答案 0 :(得分:0)

看到的主要问题是您将处理程序分配给克隆它的 后的原始元素 。因此克隆将不具有这些处理程序边界。 (您还需要告诉.clone方法您希望克隆处理程序,但这假设您已经有一些处理程序在克隆时绑定

答案 1 :(得分:-2)

查看jQuery clone文档。您可以将bool传递给.clone来复制处理程序。

编辑:您需要在克隆之前将处理程序附加到原始元素,并执行深度克隆:

login_modal.clone(true, true);