2010-06-21 147 views
0
$('textarea').focus(function() { 
    var img = $(this).css('background-image'); 
    $(this).css('background-image', 'none'); 
}); 
$('textarea').blur(function() { 
    $(this).css('background-image', img); 
}); 

..似乎不工作。我认为有些事情是错误的,但我无法弄清楚什么。切换背景图像(jQuery)

非常感谢您的帮助!

回答

7

如果定义

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') || ''); 
}); 
+1

+1 - 我只是做'$ .data(this,'img')''虽然,不需要在这里创建一个浪费的对象。 – 2010-06-21 13:26:16

+0

@Nick:我不知道'$ .data()'也适用于DOM对象。太好了! – jAndy 2010-06-21 13:29:27

+0

恩......你能举个例子吗,我不能让它工作。谢谢! – 3zzy 2010-06-21 13:31:35

0

尝试定义的URL地址在CSS中的形象。

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