2

我希望每 1 秒后连续更改段落的字体系列.. 这是我的非工作代码...

<!DOCTYPE html>
<html>
<head>
<script src = "jquery.js"> </script>
<script>

$(document).ready(function() {

    var idee = document.getElementById('p1');   

    changeFont();
}); 

    function changeFont()
    {
        if(idee.style.fontFamily == 'times')
        {
            idee.style.fontFamily = 'courier';
        }
        else if(idee.style.fontFamily == 'courier')
        {
            idee.style.fontFamily = 'times';
        }

        setTimeout(changeFont, 1000);

    }
</script>
</head>

<body>
<p id="p1">This is some text.</p>
</body>

</html>

所以..我做错了什么?如何有条件地更改字体?

4

3 回答 3

7

此代码工作正常..

<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
    function changeFont()
    {
    var idee = document.getElementById("p1").style.fontFamily; 

        if( idee == 'times')
        {
   document.getElementById("p1").style.fontFamily = 'courier';
        }
        else if(idee == 'courier')
        {
   document.getElementById("p1").style.fontFamily = 'times';
        }

var int=setTimeout(function(){changeFont();},1000);

    }
</script>
</head>

<body onload="    changeFont();">
<p id="p1" style="font-family: times;">This is some text.</p>
</body>

</html>
于 2012-12-07T05:11:41.487 回答
3

您已经在文档内的匿名函数中设置了 var idee,但您没有将其传递给 changeFont,您只是调用 changeFont 并希望它在全局命名空间中。

先试试这个:

<!DOCTYPE html>
<html>
<head>
<script src = "jquery.js"> </script>
<script>

$(document).ready(function() {

    var idee = document.getElementById('p1');   

    changeFont(idee);
}); 

    function changeFont(idee)
    {
        if(idee.style.fontFamily == 'times')
        {
            idee.style.fontFamily = 'courier';
        }
        else if(idee.style.fontFamily == 'courier')
        {
            idee.style.fontFamily = 'times';
        }

        setTimeout(function() {changeFont(idee)}, 1000);

    }
</script>
</head>

<body>
<p id="p1">This is some text.</p>
</body>

</html>
于 2012-12-07T04:49:43.547 回答
0

idee正在匿名函数中声明。

它在 changeFont 中不可见。

<script>
var idee;
$(document).ready(function() {

    idee = document.getElementById('p1');   

    changeFont();
}); 

setTimeout('changeFont()',1000);

于 2012-12-07T04:40:35.177 回答