首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在函数1完成时运行函数2

在函数1完成时运行函数2
EN

Stack Overflow用户
提问于 2011-08-13 06:42:03
回答 2查看 136关注 0票数 0

我知道以前也有人问过和回答过类似的问题,但事实是,即使读了这些问题,我也不知道我需要做什么。

下面的代码来自于一个教程。它显示一些具有打字机效果的文本。这一切都很好。

我已经添加了一个_,它可以像dos光标一样在文本前面移动。

我正在尝试在打字机动画完成后使_ blink。

我知道(或者我应该说“认为”)我需要一个回调来触发makeBlink(),但是我永远也找不到在哪里使用它。

有没有人能帮帮我?

代码语言:javascript
复制
var char = 0;
var caption = "";

function showCaption(obj) {
    caption = obj.attr('title');
    if(caption)
        type();
}


function type() {
    $('#caption').html(caption.substr(0, char++));
    if(char < caption.length+1)
        setTimeout("type()", 150);
    else {
        char = 0;
        caption = "";
    }
}

function makeBlink(){
    $("#cursor").html('<blink>_</blink>');
}


$(window).load(function() {
    showCaption($("#caption_span"));
    makeBlink(); // This runs whilst the text is still typing :(
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-13 06:45:12

makeBlink();从您拥有的位置移除,并将其插入此处:

代码语言:javascript
复制
function type() {
    $('#caption').html(caption.substr(0, char++));
    if(char < caption.length+1)
        setTimeout("type()", 150);
    else {
        char = 0;
        caption = "";
        makeBlink();
    }
}

PS。超文本标记语言的<blink>元素非常旧,而且不太受支持。即使是text-decoration: blink也很难得到支持。最好使用与type()函数类似的javascript解决方案。类似于:

代码语言:javascript
复制
function makeBlink(){
    var $cur = $('#cursor');
    if($cur.html())
        $cur.html('');
    else
        $cur.html('_');
    setTimeout(makeBlink, 500);
}

或者使用css displayvisibility

此外,您应该在代码中将"type()"更改为type,以避免使用eval。(永远不要将字符串传递给setTimeout)您的教程在那里教会了您一个糟糕的实践。

票数 1
EN

Stack Overflow用户

发布于 2011-08-13 06:45:37

您可以从type()函数中的else分支调用makeBlink。

代码语言:javascript
复制
function type() {
    $('#caption').html(caption.substr(0, char++));
    if(char < caption.length+1)
        setTimeout("type()", 150);
    else {
        char = 0;
        caption = "";
        makeBlink();
    }
}

当您完成定时器设置和输入时,它将执行makeBlink()函数。与以前一样,当您仍在执行计时器并执行更多输入时,将调用您的makeBlink()函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7047078

复制
相关文章

相似问题

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