2012-04-30 127 views
2

我删除元素具有与remove()前面说过的:Removing higher layer添加后再次删除

现在,当我在我的链接,再点击打开弹出,链接无法正常工作,因为这层之前去除。

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

UPDATE:

我用requireJS插件当点击链接加载JS文件:

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

在控制器/用户/ add.js我有一个弹出窗口,用户可以关闭弹出,我没有任何问题,直到这里,问题是当用户再次点击链接和弹出应该再次显示,但在我的代码弹出不能再次打开。

答: 问题是requreJS,因为这个插件允许我加载我的JavaScript只是一个时间,

我应该用$.getScript()代替requreJS

+0

也许你可以将其隐藏?或者将它保存在一些可用的文件中并稍后添加它 –

+1

您是否试过'.detach()'而不是?无论如何,你必须保持对元素的引用。你如何尝试再次添加元素?你应该发布一些代码! –

+0

@DanBarzilay我在弹出窗口中加载了一个JS文件,所以如果用户点击链接,我应该再次在弹出窗口中加载该文件,但删除标签后我无法再显示该文件 – MajAfy

回答

1

之前将其删除(这可以”不要复原!)克隆它。

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

Updated your Fiddle

我不知道你在做正确的事与移除,但我回答了你的问题。
您可能想隐藏并显示其中的元素,将其完全从DOM中移除。

+0

我不想克隆我的元素,因为当用户点击链接我想再次发送请求到服务器接收新代码(请阅读我的问题更新) – MajAfy

+0

@MajAfy。恐怕您的问题中缺少太多信息,并且更新也无济于事。如果你能向我们展示一个小提琴,你会得到更好的答案。 – gdoron

2

删除不是属性,元素实际上已经消失。要临时使用hide()show()来隐藏它,请稍后使用detach()重新附加它。

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

$(button).on('click', function() { 
    elm.appendTo('#popupID'); 
}); 
0
var copyofpopup = $('.popup').clone(true); 
$('.popup').remove(); 

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

注意它是更好的只是显示/隐藏(切换),而不是删除

相关问题