Когда я оборачиваю эффект анимации в функцию, он перестает работать. Кто-нибудь может сказать мне, почему? - PullRequest
0 голосов
/ 12 августа 2011

Я скопировал css и javascript в jsfiddle, но я не знаю, что добавить в html, так или иначе, я пытаюсь получить одно изображение для проверки, проблема в том, что он определяется только как класс, иУ меня проблемы с этим.Когда он у меня один, как его собственная функция, он прекрасно работает http://jsfiddle.net/EQs9N/,, но когда я оборачиваю его в невидимую функцию (или как там ее вызывали), анимация перестает срабатывать http://jsfiddle.net/EQs9N/1/. Это как-то связано ся анимирую класс?Есть ли способ определить его как объект, и поможет ли это?Спасибо

Ответы [ 3 ]

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

В вашем втором jsfiddle вы определяете функцию (функцию A), но фактически не вызываете ее.

Если вы слегка изменили свой код и передали A в document.ready(вместо передачи анонимной функции) вы должны обнаружить, что она работает:

function A(){
    if (1 == 1){
        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(A);
0 голосов
/ 12 августа 2011

Вы объявляете функцию A, но не вызываете функцию.

(function(){
    ...
})()

Это создаст анонимную функцию (это искомый термин) и выполнит ее.Я не уверен, почему вам нужно обернуть его в этом случае, $(document).ready() должно быть достаточно.

Примечание по использованию jsfiddle: В jsfiddle вы можете выбрать onDomReady вместо onLoad из раскрывающихся списков платформы, чтобы автоматически обернуть ваш javascript в $(document).ready(), делая ваш вызов $(document).ready() избыточным.Опция onLoad обернет его в $(window).load()

Если вы выберете «без переноса», то jsfiddle окружит его только необходимыми тегами сценария, а затем поместит его в голову или тело, в зависимости от выбранногоопция.

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

$(document).ready(function() { - это способ, с помощью которого jquery задерживает выполнение любого кода после полной загрузки страницы.

Если вы оберните эту часть кода внутри функции, она больше не будет работать, и код будетвызываться только при вызове функции.Вот почему это не работает, когда вы оборачиваете свой код.

См. это Туто для правильного использования $(document).ready

...