2010-06-21 194 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+')'); 
});