에서이 같은 코드가 있습니다도달 변수는 jQuery를
<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>
또한이 코드에는 전역 변수가 포함되어 있으며 작동합니다.
누군가 내게 이유를 말해 줄 수 있습니까?
감사합니다.
제안 : 루프가 아닌 변수에'i'를 사용하지 마십시오. 이벤트 처리기의 첫 번째 인수는 대개 이벤트이므로 더 잘 호출하려면 'e' – ThiefMaster
@ThiefMaster : 실제로. '호버 (hover) '에서는 이벤트이며, 사용되지도 않으므로 호버 (hover)에 전달 된 두 번째 콜백 에서처럼 모두 삭제 될 수 있습니다. –