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);