Анимация не будет срабатывать, если она помещена в другую функцию.Я пробовал так много вариантов этого кода.Пожалуйста помоги - PullRequest
0 голосов
/ 12 августа 2011

Вот с чем я работаю.http://jsfiddle.net/HHBN8/1/ Я пытаюсь анимировать класс, когда данные возвращаются как ложные, и скрывать класс, когда данные возвращаются как истинные.Код анимации работает сам по себе, но как только я добавлю его в функцию, он не сработает.Пара вещей, документ должен быть готов для работы анимации, и я помещаю анимацию в ту же функцию, что и функция данных, потому что я не могу понять, как получить доступ к переменной вне этой функции.Если есть более простой способ сделать это, дайте мне знать.Большое спасибо за вашу помощь, и помните, что 3 недели назад я не знал, что такое класс.

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Я думаю, это то, что вы хотите. Проверьте это скрипка

function getCrossDomainJson(url, callback) {
    $.ajax({
        url: "http://query.yahooapis.com/v1/public/yql?callback=?",
        data: {
            q: 'select * from xml where url="' + url + '"',
            format: "json"
        },
        dataType: "jsonp",
        success: callback
    });
}




function A(MyStatus){

   // alert(MyStatus.someProperty)

    if (MyStatus.someProperty == 'false'){
      function pulsate() {
        $(".image2_template").
          animate({opacity: 0.1}, 1500, 'linear').
          animate({opacity: 1}, 1500, 'linear', pulsate);
      }
      pulsate();
    }else {
        $('.image2_template').animate({
            opacity: 0,
        });
        $('.text3_template').animate({
            opacity: 0,
        });
    }
}


$(document).ready(function(){

    var MyStatus = {};
    getCrossDomainJson("http://xproshowcasex.channel-api.livestream-api.com/2.0/getstream", function(data) {
        // data is in JSON format:
        //alert(data);
        if (data && data.query && data.query.results && data.query.results.channel) {
            MyStatus.someProperty = (data.query.results.channel.isLive)
           //alert(data.query.results.channel.isLive);
            A(MyStatus);
    }

    });

});
1 голос
/ 12 августа 2011

Я сделал некоторые изменения, такие как определение метода A вне другого (* таким образом, вам не нужно связывать его с событием window.load.

демо в http://jsfiddle.net/HHBN8/5/

примечание: у вас нет html ... так что анимировать нечего ... Я добавил немного html в пример ..

...