Переключение фонового изображения (jQuery) - PullRequest
0 голосов
/ 21 июня 2010
$('textarea').focus(function() {
    var img = $(this).css('background-image');
    $(this).css('background-image', 'none');
});
$('textarea').blur(function() {
    $(this).css('background-image', img);
});

.. похоже не работает. Я думаю, что-то не так, но я не могу понять, что.

Большое спасибо за вашу помощь!

Ответы [ 2 ]

7 голосов
/ 21 июня 2010

Если вы определите

var img

только внутри обработчика событий .focus(), эта переменная не будет доступна в .blur()

Так что либо определите var img globaly, либо используйтеjQuerys .data() метод, например.

запись:

$.data(this, 'img', $(this).css('background-image'));

чтение:

$.data(this, 'img');

пример:

$('textarea').focus(function() {
   var $this = $(this);
   $.data(this, 'img', $this.css('background-image'));
   $this.css('background-image', 'none');
});
$('textarea').blur(function() {
   $(this).css('background-image', $.data(this, 'img') || '');
});
0 голосов
/ 21 июня 2010

Попробуйте определить URL-адрес изображения в css.

var img = 'images/mybg.png';
$('textarea').blur(function() {
    $(this).css('background-image', 'url('+img+')');
});
...