Достижение переменных в jQuery - PullRequest
0 голосов
/ 01 декабря 2010

У меня есть такой код:

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

Но также этот код включает в себя глобальную переменную и работает.

Может кто-нибудь сказать мне, почему?

Спасибо.

Ответы [ 3 ]

7 голосов
/ 01 декабря 2010

Проблема в том, что вы смешиваете оболочку.Переменная объявляется как picEL, но иногда используется как picEl (в нижнем регистре 'l', где ваша ошибка).

0 голосов
/ 01 декабря 2010

Вы используете picEL везде, кроме второй функции наведения - picEl.

0 голосов
/ 01 декабря 2010

Вы используете picEl, а не picEL.

 picEl.attr("src",currentPicture);

должно быть:

 picEL.attr("src",currentPicture);
...