删除后再次添加

时间:2012-04-30 18:20:56

标签: jquery dom

我之前在Removing higher layer

中删除了remove()元素

现在当我再次点击我的链接打开弹出窗口时,该链接无法正常工作,因为该图层已被删除。

如何从元素中删除remove属性?

更新

点击链接后,我使用requireJS插件加载JS文件:

$('a#addUser').click(function () {
    require (['controllers/users/add'],function() {
         $('#loading').fadeOut('fast');
    });
});

在controllers / users / add.js中我有弹出窗口,用户可以关闭弹出窗口,我这里没有任何问题,问题是当用户再次点击链接时弹出窗口应该再次显示,但是我弹出的代码不会再打开。

解答: 问题是requreJS,因为这个插件允许我加载我的javascript一次,

我应该使用$.getScript()而不是requreJS

3 个答案:

答案 0 :(得分:3)

删除不是属性,元素实际上已经消失。要暂时隐藏它,请使用hide()show(),将其重新分开,稍后再使用detach()

var elm = $("#elementID").detach();

$(button).on('click', function() {
    elm.appendTo('#popupID');
});

答案 1 :(得分:1)

在删除之前(无法恢复!)克隆它。

var cloned = $('.foo').clone();
$('.clone').remove();

Updated your Fiddle

我不确定你是否做了正确的删除工作,但我回答了你的问题 您可能希望隐藏并显示内部元素,将其从DOM中完全删除。

答案 2 :(得分:0)

var copyofpopup = $('.popup').clone(true);
$('.popup').remove();

$('OPEN_POPUP_LINK').on('click', function() {
  copyofpopup.appendTo('SOMETARGET');
});

注意最好只显示/隐藏(切换)而不是删除