4

remove()如前所述,我删除了一个元素:删除更高层

现在,当我再次单击我的链接打开弹出窗口时,该链接无法工作,因为该层之前已删除。

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

更新:

requireJS单击链接时,我使用插件加载 JS 文件:

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

在 controllers/users/add.js 我有那个弹出窗口,用户可以关闭弹出窗口,到目前为止我没有任何问题,问题是当用户再次单击链接并且应该再次显示弹出窗口时,但在我的代码中弹出窗口不再打开。

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

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

4

3 回答 3

3

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

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

$(button).on('click', function() {
    elm.appendTo('#popupID');
});
于 2012-04-30T18:24:23.820 回答
1

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

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

更新了你的小提琴

我不确定您是否在删除时做正确的事情,但我回答了您的问题。
您可能想要隐藏和显示内部的元素,以便将其从 DOM 中完全删除。

于 2012-04-30T18:23:40.427 回答
0
var copyofpopup = $('.popup').clone(true);
$('.popup').remove();

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

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

于 2012-04-30T18:25:19.390 回答