2012-04-30 185 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'); 
}); 

注意它是更好的只是顯示/隱藏(切換),而不是刪除

相關問題