Как fadeOut и fadeIn вращающиеся страницы [дублировать]

Ну, простыми словами:

Вы пытаетесь получить доступ к объекту, который не создан или в настоящее время не находится в памяти.

Итак, как это решить:

  1. Отладить и отпустить отладчик ... Он сразу приведет вас к переменной, которая сломана ... Теперь ваша задача - просто исправить это. Используя новое ключевое слово в соответствующем месте.
  2. Если это вызвано некоторыми командами базы данных, потому что объект отсутствует, все, что вам нужно сделать, это выполнить нулевую проверку и обработать его:
    if (i == null) {
        // Handle this
    }
    
  3. Самый сложный. если GC уже собрал объект ... Это обычно происходит, если вы пытаетесь найти объект, используя строки ... То есть, найдя его по имени объекта, может случиться, что GC, возможно, уже очистил его ... Это трудно найти и станет проблемой. Лучшим способом решения этой проблемы является выполнение нулевых проверок везде, где это необходимо в процессе разработки. Это сэкономит вам много времени.

Поиск по имени означает, что некоторые фреймворки позволяют использовать FIndObjects с помощью строк, а код может выглядеть так: FindObject («ObjectName»);

7
задан Ali Poder 13 December 2011 в 20:42
поделиться

8 ответов

Сначала вы должны скрыть это.

$(this).hide().load("tx.php").fadeIn('500');
12
ответ дан Andri 4 September 2018 в 08:28
поделиться

обработчик вызова при загрузке

$(document).ready(function(){
    setInterval(function(){
         $('.live-stream ul').each(function(){
                $(this).load('tx.php', function(){
                         $('li').fadeIn("normal");
                            });
                 });
        }, 1000);

    });  
1
ответ дан dku.rajkumar 4 September 2018 в 08:28
поделиться

$ (this) показывается перед запуском .fadeIn ("1000"). Сначала вам нужно скрыть выбранный элемент, загрузить содержимое, а затем fadeIn, например:

$(document).ready(function(){
   setInterval(function(){
       $('.live-stream ul').each(function(){
           $(this).hide().load('tx.php').fadeIn("1000");
       });
   }, 1000);

});  

Или скрыть элементы с помощью css:

display: none;

EDIT: Должно быть что-то вроде этого, но оно не проверено ...

$(document).ready(function(){
   setInterval(function(){
       var streamListElement = $(document.createElement("li")).load('tx.php').hide();
       $('.live-stream ul').append( streamListElement ).find(":hidden").fadeIn("3000");
   }, 1000);
});
0
ответ дан frank_neff 4 September 2018 в 08:28
поделиться

вы пробовали этот?

$(document).ready(function(){
    setInterval(function(){
        $('.live-stream ul').each(function(){
            $(this).load('tx.php').fadeIn('1000');
        });
    }, 1000);
});

hmmm, а как насчет этого

$(function(){
//Fade in all objects.
var wrapper = $("live-stream ul");
$(wrapper).hide();

function fadeInAll(elem, fadeInTime, timeBetween)
{
    for(i=0; i<elem.size(); i++)
    {
        $(elem[i]).delay(i*(timeBetween+fadeInTime)).fadeIn(fadeInTime);    
    }
}

fadeInAll($(wrapper), 1000, 500);

});
0
ответ дан Khairu Aqsara 4 September 2018 в 08:28
поделиться

Не думаю, что вы можете использовать анимацию непосредственно на load (). Но вот трюк, который я использовал:

$("#id").animate({opacity: 0},1000);
$("#id").load(url);
$("#id").animate({opacity: 1},1000);

Элемент не отображается, просто становится прозрачным. Это выглядит точно так же.

0
ответ дан Longbin Chen 4 September 2018 в 08:28
поделиться

Использовать обратный вызов, но скрывать li с помощью CSS display: none; fadeIn должен работать после этого.

$(document).ready(function(){
    setInterval(function(){
         $('.live-stream ul').each(function(){
                $(this).load('tx.php', function(){
                         $(this).find('li').fadeIn();
                            });
                 });
        }, 1000);

    });
0
ответ дан shaunsantacruz 4 September 2018 в 08:28
поделиться

что если вы вызываете метод fadeIn

$(this).load('tx.php').fadeIn(400);
1
ответ дан Shyju 4 September 2018 в 08:28
поделиться

Попробуйте что-то вроде этого:

$(document).ready(function(){
     setInterval(function(){
        $('.live-stream ul').each(function(){
           $(this).hide().load('tx.php').fadeIn('500');
        });
     }, 1000);

});  

Обратите внимание на использование fadeIn() и hide() ... Вам не нужно скрывать, если у вас уже есть <li>.

2
ответ дан sirmdawg 4 September 2018 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: