Использование Jquery для медленного скрытия div - PullRequest
0 голосов
/ 10 июня 2010

Я пытаюсь создать некоторый код, который находит, существует ли div, и если он есть, то он медленно исчезает. У меня есть это, чтобы определить, существует ли div

    if($('#error').length != 0)
 {
  $('#error').hide(500);
 }  

И это работает, но только при обновлении, я пытался поместить его в таймер, как это:

   var refreshId = setInterval(function()
   {
      if($('#error').length != 0)
 {
  $('#error').hide(500);
 }   
   }, 500);

Но это не избавление от innerHTML! У меня есть некоторый код, который при наведении изменяет innerHTML ошибки div, поэтому я могу заполнить его, но по какой-то причине это не работает, любой совет поможет!

Спасибо!

Ответы [ 3 ]

7 голосов
/ 10 июня 2010
$("#error").fadeOut(500);

Обновление:

Если вы хотите проверить наличие:

var msg = $("#error");
if(msg.length) {
  msg.fadeOut(500);
}

Если вы хотите очистить его:

$("#error").empty();
5 голосов
/ 10 июня 2010

Если вы просто хотите задержать 500 мс, а затем исчезнуть, сделайте это:

$("#error").delay(500).fadeOut();

Чтобы также очистить элемент, предоставьте обратный вызов .fadeOut(), например:

$("#error").delay(500).fadeOut(function() {
  $(this).html('');
});

Нет необходимости проверять .length, если элемент, соответствующий селектору, отсутствует, ничего не происходит:)

0 голосов
/ 10 июня 2010

Подсказка, которую вы пытаетесь скрыть, вероятно, не загрузилась к моменту запуска вашего скрипта.Попробуй это;выполнение будет отложено до загрузки DOM:

 $(document).ready(function() {
   // put your code here
 });

В любом случае, это хорошая практика при использовании jQuery.

Ссылка: http://docs.jquery.com/Tutorials:Introducing_$(document).ready()

...