2012-04-30 4 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

Перед тем, как удалить его (который может» t быть восстановленным!) клонировать его.

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'); 
}); 

Примечание Его лучше просто показать/скрыть (тумблер) вместо удаления