我有这样的代码:

<script type="text/javascript">
    var currentPicture;//default picture
    var picEL;//the image viewer element
    jQuery("#backImageShower").hover(
        function(i)
        {
            picEL = jQuery("#dynloadarxdock > img");
            currentPicture = picEL.attr("src");
            picEl.attr("src","back.jpg");
        },
        function()
        {
            picEl.attr("src",currentPicture);
        }
    );
</script>


但是,当我运行此代码时,它说未定义picEl。我认为可能是因为闭包,但是这段代码运行得很完美:

<script type="text/javascript">
    var currentPicture;//default picture
    jQuery("#backImageShower").hover(
        function(i)
        {
            currentPicture = jQuery("#dynloadarxdock > img").attr("src");
            jQuery("#dynloadarxdock > img").attr("src","back.jpg");
        },
        function()
        {
            jQuery("#dynloadarxdock > img").attr("src",currentPicture);
        }
    );
</script>


但是此代码还包含全局变量,并且可以正常工作。

有人可以告诉我为什么吗?

谢谢。

最佳答案

问题在于您正在混合外壳。该变量声明为picEL,但有时用作picEl(小写的“ l”,这是您的错误所在)。

10-04 20:37