检测并隐藏特定秒后动态创建div(不是onclick)

时间:2017-07-17 08:35:22

标签: html dynamic hide

我有一个动态生成的div,它不在加载时。它将在文档中生成。那么我如何在特定时间之后将该目标作为目标并隐藏它。 div如下:

<div class="message-sent">Your Message has been sent</div>

重要提示:我引用了很多文章,但每个人都在谈论'onclick'。我不想要点击事件。我只想隐藏这个div,当它出现在docuemnt中时。提前谢谢!

3 个答案:

答案 0 :(得分:0)

您应该尝试查看setTimeout函数。 此外,如果该div是具有该类的DOM树的唯一成员,则使用ID。这是更好的IMO。 无论如何,假设你想要隐藏private boolean initSTT() { // initialize the connection to the Watson STT service String username = getString(R.string.STTdefaultUsername); String password = getString(R.string.STTdefaultPassword); String tokenFactoryURL = getString(R.string.STTdefaultTokenFactory); String serviceURL = "wss://stream.watsonplatform.net/speech-to-text/api"; SpeechConfiguration sConfig = new SpeechConfiguration(SpeechConfiguration.AUDIO_FORMAT_OGGOPUS); SpeechToText.sharedInstance().initWithContext(this.getHost(serviceURL), getActivity().getApplicationContext(), sConfig); // Basic Authentication SpeechToText.sharedInstance().setCredentials(username, password); SpeechToText.sharedInstance().setModel(getString(R.string.modelDefault)); SpeechToText.sharedInstance().setDelegate(this); return true; } 类的每个成员, 它是这样的:

message-sent

其中setTimeout(function(){ $('.message-sent').hide(); }, 2000) 是指示时间(毫秒)的变量

答案 1 :(得分:0)

  1. 您可以添加样式显示:无。
  2. 你可以在超时后(3000ms)添加样式:

    setTimeout(function(){ 
      document.getElementsByClassName("message-sent")[0].style.display="none"; 
    }, 3000);
    
  3. 注意:如果您使用id而不是类来识别div,则会更好。

答案 2 :(得分:0)

您可以尝试DOMNodeInserted

$(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

希望有所帮助,