Javascript 为什么';是否使用此功能启动文本滚动?

Javascript 为什么';是否使用此功能启动文本滚动?,javascript,scroll,Javascript,Scroll,使用此代码,返回的歌曲名称保持静态 var temp; function scrollon(f) { temp = f.substring(0,1); f += temp; f = f.substring(1,f.length); document.wow.display.value = f.substring(0,f.length); setTimeout("scrollon()",200); } 而这会根据需要滚动 var temp; var f = "Closing Time

使用此代码,返回的歌曲名称保持静态

var temp;
function scrollon(f) {

 temp = f.substring(0,1);
 f += temp;
 f = f.substring(1,f.length);
 document.wow.display.value = f.substring(0,f.length);
 setTimeout("scrollon()",200);
}
而这会根据需要滚动

var temp;
var f = "Closing Time is now playing ";

function scrollon() {

 temp = f.substring(0,1);
 f += temp;
 f = f.substring(1,f.length);
 document.wow.display.value = f.substring(0,f.length);
 setTimeout("scrollon()",200);
}

关于我做错了什么有什么建议吗?

试着从

setTimeout("scrollon()",200); 


因为您创建了带有参数的函数。您需要再次传递参数。

不要将字符串传递给
setTimeout
。更好的解决方案是
setTimeout(scrollon.bind(this,f),200)
。如果字符串包含一个
”,您的解决方案将失败。正如Felix所指出的,在我找到一首标题中带有“的歌曲之前,@Sky一直在工作。这是字符串上的一个常见问题。示例$f=“天空时代”;函数将类似于scrollon('Sky's Era'),它不会运行,因为字符串被“”提前终止。一种方法是用`替换'使用$f.replace(“'”,“`”);在调用setTimeout之前。
setTimeout("scrollon('"+f+"')", 200);