2017-07-17 9 views
0

私はロード時に動的に生成されるdivを持っています。ドキュメントの後半に生成されています。だから私はそのdivをターゲットにして、特定の時間の後にそれを隠すことができます。 divは次のようになります。特定の秒後にdivを動的に作成して非表示にする(onclickではなく)

重要:私は非常に多くの記事を参照していますが、誰もが「onclick」について話しています。私はクリックイベントを望んでいません。 docuemntに表示されているときにこのdivを非表示にしたいだけです。前もって感謝します!

答えて

0

setTimeout関数を調べてみる必要があります。 また、そのdivがそのクラスを持つDOMツリーの唯一のメンバーである場合は、IDを使用します。それはより良いIMOです。とにかく 、 、あなたがmessage-sent級のすべてのメンバーを非表示にすると仮定すると、それはこのようなものになる:2000は時間を示す変数である

setTimeout(function(){ 
    $('.message-sent').hide(); 
}, 2000) 

する(ミリ秒)

+0

こんにちは友人が...このコードは、既存のdivと連携し、支援します。しかし、私のケースでは、 '.message-sent' divは、ボタンをクリックしてから長い時間が経過した後に作成されます。 –

+0

divを動的に作成するコードを追加できますか? –

+0

if(!$ mail-> send()){ echo 'メッセージを送信できませんでした。'; echo 'メーラーエラー:' $ mail-> ErrorInfo; } else { echo '

Your Message has been sent
';} 私のメールがphpで成功すると、このdivが生成されます。しかし、jQueryの特定の時間の後にこれを非表示にすることはできません。 –

0
  1. をスタイル表示を追加することができます:なし。
  2. あなたはそうのようなタイムアウト(3000ms)の後にスタイルを追加することができます

    setTimeout(function(){ 
        document.getElementsByClassName("message-sent")[0].style.display="none"; 
    }, 3000); 
    

注意を:あなたのdivを識別するために、クラスの代わりにIDを使用している場合、それは良いです。あなたがDOMNodeInsertedを試すことができます

+0

これは動作しません。あなたはすでに既存のdivのコードが良いです。しかし、divを動的に生成するためには動作しません。 'message-sent' divは、読み込み中のドキュメントには存在しません。送信ボタンのクリックで後で生成されます。 –

+0

もし、クリックイベントの後に関数を呼び出すと、divは後でそこに存在するはずです。 – mygeea

0

$(document).bind('DOMNodeInserted', function(event) { 
var element = document.getElementsByClassName("message-sent"); // get all elements with class message-sent 
var lastchild = element[element.length - 1]; // get the last one (others are hidden) 
if(lastchild != null){ 
    lastchild.style.visibility = 'hidden'; // set visibility to hidden 
} 
}); 

ワーキングdemo

希望は

関連する問題