私はこれに困惑しています。次のように、独自の動的コンテンツを含むライトボックス スタイルの div を作成しています。
//ADD LIGHTBOX DIV
var DG_lightbox = document.createElement('div');
DG_lightbox.className = "DG_lightbox";
DG_lightbox.id= "DG_lightbox";
document.body.appendChild(DG_lightbox);
//ADD MAIN CONTENT DIV
var DG_contentbox = document.createElement('div');
DG_contentbox.className = "DG_contentbox";
DG_contentbox.id= "DG_contentbox";
DG_lightbox.appendChild(DG_contentbox);
明らかにもっと多くのコンテンツがありますが、それらはすべて同じ方法で DG_lightbox div に追加されます。ライトボックスには、次のような閉じるボタンがあります。
function closeDG(){
DG_lightbox.parentNode.removeChild(DG_lightbox);
return false;
window.location.hash = "";
}
IE と Chrome では問題なく動作しますが、Firefox ではオブジェクトを完全に取り除くことはできません。ライトボックスが2回作成されるたびに、一部のコンテンツが正しく初期化されていないように見え、再度閉じると、ブラウザーは削除される前にそのことを考慮する必要があります (コンテンツが 2 回削除されているかのように)。その後、4回目までは正常に動作します。
したがって、removeChild()
2回使用しcloseDG()
てもこの問題はありませんが、2番目の方法で機能していないかのようにページが更新されますreturn false
(重複return false
は何もしません)。
のインスタンスを 1 つだけ使用できるようにしたいのremoveChild()
ですが、呼び出されたときにページが更新されないようにすることができる限り、複製メソッドを使用したいと考えています。
Web ページは次のとおりです: http://www.apennydreadful.com [章] > [ここから開始] をクリックして、スクリプトの動作を確認します。
どんな助けでも大歓迎です。
~ギズ
UPDATE
秒を追加することは、それを機能させるものremoveChild
ではないようです。代わりに、2 番目removeChild
のコードが をスキップするためreturn false
、ページが更新され、コードも更新されます...そのため、1 回おきのクリックで繰り返しエラーが発生することはありませんが、まだそこにあります。というわけで、また途方に暮れてしまいました。$("#DG_lightbox").empty();
結果を使用する前に使用してdivを空にして$("#DG_lightbox").remove();
も同じです。