<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css"> #blink { display: inline; } </style> <script type="text/javascript"> window.onload=function () { var currentStyle = 'inline'; blinkSpan(); function blinkSpan(){ if(currentStyle=='inline'){ currentStyle='none'; }else{ currentStyle='inline'; } document.getElementById('blink').style.display = currentStyle; setTimeout("blinkSpan()",1000); //"blinkSpan()"这种写法不行,不知道为什么,只能写成blinkSpan } } </script> </head> <body> <span id="blink">__</span> </body> </html>
如红色的地方,为什么不行?新手求问呢!
改成setTimeout(blinkSpan,1000);
因为setTimeout的第一个参数是字符串的话,那么他会在全局作用域里执行这个字符串对应的代码,很显然blinkSpan不是全局函数,所以会报错。
很奇怪,怎么一个js函数里面出现了标签?
改成setTimeout(blinkSpan,1000);