首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我在一个函数中包装我的动画效果时,它停止工作。有人能告诉我为什么吗?

当我在一个函数中包装我的动画效果时,它停止工作。有人能告诉我为什么吗?
EN

Stack Overflow用户
提问于 2011-08-12 22:46:12
回答 3查看 65关注 0票数 0

我把css和javascript复制到jsfiddle中,但是我不知道在html中放什么,不管怎么说,我试图得到一个单独的图像脉冲,问题是它只被定义为一个类,我在使用它时遇到了麻烦。当我将它单独作为它自己的函数时,它可以很好地执行http://jsfiddle.net/EQs9N/,但是当我将它包装在一个不可见的函数(或其他任何名称)中时,动画就会停止触发http://jsfiddle.net/EQs9N/1/。这和我给一个类添加动画有关系吗?有没有办法把它定义为一个对象,这会有帮助吗?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-12 22:56:28

您正在声明一个函数A,但是您并没有调用该函数。

代码语言:javascript
运行
复制
(function(){
    ...
})()

这将创建一个匿名函数(即您要查找的术语)并执行它。我不知道为什么在这种情况下需要包装它,$(document).ready()应该足够了。

关于jsfiddle用法的附注:

在jsfiddle中,您可以从框架下拉列表中选择onDomReady而不是onLoad,以自动将您的javascript包装在$(document).ready()中,从而使您的$(document).ready()调用变得多余。选项onLoad将把它包装在$(window).load()

如果您选择“无包装”,那么jsfiddle将只用必要的脚本标记围绕它,然后根据所选的选项将其放在头部或正文中。

票数 0
EN

Stack Overflow用户

发布于 2011-08-12 22:50:38

$(document).ready(function() {是jquery在页面完全加载后延迟任何代码执行的方式。

如果您将这部分代码包装在一个函数中,它将不再工作,并且只有在您调用该函数时才会调用该代码。这就是当你包装你的代码时它不能工作的原因。

有关$(document).ready的良好用法,请参阅this tuto

票数 0
EN

Stack Overflow用户

发布于 2011-08-12 22:54:08

your second jsfiddle中,您定义了一个函数(函数A),但并没有实际调用它。

如果您稍微更改代码并将A传递给document.ready (而不是传递匿名函数),您会发现它是有效的:

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7041819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档