2017-02-17 5 views
0

「送信」ボタンを押した後、「ページの読み込み」で使用したのと同じローダーを表示しようとしています。私が持っているページの最上部にJavascript appendChild(div):confusion

:「load_screen」と「ローダー」が素敵な「糸車を得るために、CSSでフォーマットされている間

<div id="gabbia"><div id="load_screen"><div id="loader"></div></div></div>

(「gabbiaは」単なるコンテナです「)

私はこのスクリプトを持っている:

var gabbia = document.getElementById("gabbia"); 
var load_screen = document.getElementById("load_screen"); 
var loader = document.getElementById("loader"); 

window.addEventListener("load", function() { 
     gabbia.removeChild(gabbia.childNodes[0]); 
    }); 

function show_loader() { 
      var cont = document.getElementById("gabbia"); 
      cont.appendChild(load_screen); 
      var subcont = document.getElementById("load_screen"); 
      subcont.appendChild(loader); 
     } 

show_loader()の呼び出しで、最初のDIV(load_screen)は二ながら、追加されているようです(ローダ)はローダを再構築するために子として追加されません。

私は前にjavascriptを使用したことはありません。 ご理解いただきありがとうございます。

+1

window.addEventListener("load",loader); function loader(val) { document.getElementById("gabbia").style.display=val?"block":"none"; } 

は次のように使用します。 load_screen ... –

+1

に* show_loader()*が呼び出されても、 DOMは準備が整った後にrun *上のスクリプトですか? –

+0

Jonas:load_screenのみを使用しようとしましたが、動作しません。 – sunlight76

答えて

1

私には間違いがあります。 document.getElementByIdを間違った位置(ページの読み込み前)で使用したため、私はそれを信じています。私は(CSSを使用して、より簡単+効率的な方法)を行うだろう:あなたは、ローダを再度追加する必要がいけない

loader();//hide 
loader(false)//hide 
loader(true)//show