我有这样的代码:
<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>
但是这段代码也包含全局变量并且有效。
有人可以告诉我为什么吗?
感谢。
答案 0 :(得分:7)
问题是你正在混合外壳。该变量声明为picEL
,但有时用作picEl
(小写'l',这是您的错误所在的位置)。
答案 1 :(得分:0)
您正在使用picEl而不是图片。
picEl.attr("src",currentPicture);
应该是:
picEL.attr("src",currentPicture);
答案 2 :(得分:0)
除了第二个悬停功能外,你在任何地方都使用picEL - picEl。