2017-05-09 12 views
0

私のトースト通知には、 "toastArea"という名前のdivコンテナを作成します。だから自分のHTMLファイルに書き込むときトースト通知のdiv領域を作成するにはJavaScriptを使用して

<div class="toastArea"></div> 

すべてが問題ありません。しかし、JSを使って動的に作成したいと思っています。私のトーストコントローラにおけるだから私は

class ToastController { // class for toast notifications 
    constructor() { 
    this.CreateToastArea(); // create a div for every toasts 
    } 

    CreateToastArea() { 
     var area = document.createElement("div"); // create div 
     area.classList.add("toastArea"); // add a class to the div 
     document.body.appendChild(area); // append div to the body 
    } 
} 

を書きますが、コンストラクタ関数を呼び出すときには、

Cannot read property 'appendChild' of null 

言いますが、変数「面積」はnullではありません。 divが正しく作成されました。

私は何が間違っているのでしょうか。

+0

[MCVE]を作成してください。 Don Rhummyの答えは聞こえるかもしれませんが、それが原因であることを確認するのに十分な情報は含まれていません。あなたは 'new ToastController()'をどこで呼びますか? – 4castle

+0

[なぜJavaScriptがdocument.body nullですか?](http://stackoverflow.com/questions/9916747/why-is-document-body-null-in-my-javascript) – 4castle

答えて

1

あなたのスクリプトはヘッダにロードされています。 ToastControllerのインスタンス化をボディの読み込み/解析に結びつける必要があります。 jQueryのでは例えば

、:

jQuery(document).ready(function() { window.myToastController = new ToastController(); }); 
+0

質問に答えるためにあなたのクリスタルボールを使用してください、あなたが最初に質問者からの説明を求めるなら、はるかに良いです。あなたは答えを書くために質問にない情報を引き受ける必要はありません。 – 4castle

+0

うまくいきました:)私のHTMLファイルでは、 ''を使っていました。この機能で私はコントローラーを作成しました。ありがとうございました:) – Question3r

+0

@ 4castle何年もの経験を経て、よくある間違いの主な原因を突き止めるのはずっと簡単です。 –

関連する問題