繁体   English   中英

此代码后,Javascript停止工作

[英]Javascript stops working after this code

我已经为类似cmd控制台的键入效果编写了此代码。 该代码本身可以正常工作,但是我放置的所有代码都无法正常工作。 我已经尝试了好一阵子了,我很困。

这是问题的JSFiddle。 http://jsfiddle.net/GWj4b/

/**
 * CONSOLE
 */

setInterval(cursorBlink, 500);
function cursorBlink() {
    if($('#cursor').css('visibility') == 'hidden'){
        $('#cursor').css({'visibility': 'visible'});
    } else {
        $('#cursor').css({'visibility': 'hidden'});
    }
}

var text = $('#type').html();
var text = text.replace(/<br>/g, '_');

$('#type').html('');

$.each(text.split(''), function(i, letter) {
    setTimeout(function(){
        if(letter == '_'){
            $('#type').html($('#type').html() + '<br />');
        } else {
            $('#type').html($('#type').html() + letter);
        }
    }, 100 * i);
});

您使用的不是HTML吗?

$('#type')返回undefined ,然后执行text.replace(/<br>/g, '_');

您不能执行undefined.replace ,因此它将失败,并且执行将停止。

尝试为该JS代码添加html代码

同样,您必须在Frameworks&Extensions部分中将JQuery添加到您的小提琴中。

看到这个小提琴http://jsfiddle.net/9748L/

如果您在控制台日志中查看,则会看到: Uncaught TypeError: Cannot call method 'replace' of undefined

调用replace时未定义text,因为要查找的元素不存在。

您可以测试以查看它是否存在

if(text) {
  text.replace(/<br>/g, '_');
}

如果Javascript遇到这样的运行时错误,它将停止执行。

考虑更多地了解如何使用Chrome的开发工具或浏览器中的等效工具调试此类问题。 一旦您看到该错误,就会很清楚是什么引起了该问题。

顺便说一句,在添加您要引用的元素之后,代码将通过执行。 如果它们可能不存在,则需要进行代码检入,无论如何,这都是一个好习惯。

http://jsfiddle.net/GWj4b/1/

我刚刚调试了它,看起来文本是未定义的,所以也许您还没有在html中创建该元素。

var text = text.replace(/<br>/g, '_');

确实,您缺少一些html代码,并且您尝试操作的文本是undefined 您可以添加以下html代码,

<span id="type">is this what you try to do????</span><span id="cursor">_</span>

达到您想要的效果。

http://jsfiddle.net/JKp5z/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM