Javascript 在jQuery中获取变量

Javascript 在jQuery中获取变量,javascript,jquery,closures,hover,Javascript,Jquery,Closures,Hover,我有这样一个代码: <script type="text/javascript"> var currentPicture;//default picture var picEL;//the image viewer element jQuery("#backImageShower").hover( function(i) { picEL = jQuery("#dynloadarxdock > img

我有这样一个代码:

<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
,但有时用作
picEL
(小写字母“l”,这是您的错误所在)。

您使用的是picEL,而不是picEL

 picEl.attr("src",currentPicture);
应该是:

 picEL.attr("src",currentPicture);

除了在第二个悬停函数中使用-picEL外,其他地方都在使用picEL

建议:不要对非循环变量使用
i
。事件处理程序的第一个参数通常是一个事件,因此最好将其称为
e
@ThiefMaster:的确如此。在
hover
中,它是一个事件,并且也不使用,因此可以将它一起删除,就像在传递给
hover
的第二个回调中一样。
 picEL.attr("src",currentPicture);