4

remove()前に言ったように要素を削除しました:上位レイヤーの削除

リンクをもう一度クリックしてポップアップを開くと、そのレイヤーが以前に削除されたため、リンクが機能しません。

要素から remove プロパティを削除するにはどうすればよいですか?

アップデート:

requireJSリンクをクリックすると、プラグインを使用して JS ファイルをロードします。

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

controllers/users/add.js にそのポップアップがあり、ユーザーはポップアップを閉じることができます。ここまで問題はありません。問題は、ユーザーがリンクをもう一度クリックしてポップアップを再度表示する必要がある場合ですが、私のコードではポップアップは再び開きません。

回答: 問題は requreJS です。このプラグインを使用すると、JavaScript を 1 回だけ読み込むことができるためです。

$.getScript()requreJS の代わりに使用する必要があります

4

3 に答える 3

3

Removeはプロパティではなく、要素は実際には削除されています。一時的に非表示にするには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 に答える