2010-06-21 13 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)

많은 도움을 주셔서 감사합니다. 그냥 .focus() 이벤트 핸들러 내부에

var img 

를 정의하면

답변

7

, 그 변수는 그러니 globaly var img을 정의하거나 예를 들어 jQuerys에게 .data() 방법을 사용 .blur()

내에서 사용할 수 없습니다.

쓰기 :

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

읽기 :

$.data(this, 'img'); 

예 : CSS에서 이미지의 URL 주소를 정의하는

$('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')'를 사용합니다. 그러나 여기서 낭비되는 객체를 만들 필요는 없습니다. –

+0

@Nick :'$ .data()'도 DOM 객체와 함께 작동한다는 것을 몰랐습니다. 좋은! – jAndy

+0

erm ... 예를 보여줄 수 있습니까? 작동하지 않습니다. 감사! – 3zzy

0

보십시오.

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