我正在创建一个小程序,它使用CSS3的transform属性和JavaScript的SetTimeout方法连续旋转360度图像。通过搜索,我能够获得所需的结果。程序运行正常,但我无法理解一件事: 为什么在setTimeout内部,我们需要反斜杠fol;由单引号所欠。
setTimeout('rotateAnimation(\'' + elem + '\', '+ speed + ')',speed);
相关的完整代码是: 内部脚本:
<script>
var degrees=0;
function rotateAnimation(elem, speed){
var el=document.getElementById(elem);
if(navigator.userAgent.match("Chrome")){
el.style.WebkitTransform="rotate(" +degrees + "deg)";
} else if(navigator.userAgent.match("Mozilla")){
el.style.MozTransform="rotate(" +degrees + "deg)";
}
setTimeout('rotateAnimation(\'' + elem + '\', '+ speed + ')',speed);
degrees++;
if(degrees>359)
degrees=0;
}
</script>
体内:
<img id="img1" width="150px" height="150px" src="culture.png" />
<script>
rotateAnimation("img1", 200);
</script>
答案 0 :(得分:2)
反斜杠是字符串的许多语言的转义字符。反斜杠允许将保留字符键入字符串而不使用其保留含义。如果你没有反斜杠,引号会标记字符串的结尾而不是在字符串中插入引号。
根本需要引用的原因是因为该参数是一个需要引用终止的字符串参数。
答案 1 :(得分:1)
你的陈述中至少有三个错误的假设:
为什么在jQuery评论中需要反斜杠后跟单引号
\'
不是必需的我个人将这一行重写为:
setTimeout(function(){
rotateAnimation(elem, speed);
}, speed);
它更干净,不易出错。