在Blur上清除Textarea(jQuery)

时间:2010-06-21 14:40:01

标签: jquery background textarea swap blur

// Clearing Textarea
$('textarea').focus(function() {
   var $this = $(this);
   $.data(this, 'img', $this.css('background-image'));
   $this.css('background-image', 'none');
});
$('textarea').blur(function() {
    if($.trim($('textarea').val()).length){
         $this.css('background-image', 'none');
    } else {
        $(this).css('background-image', $.data(this, 'img'));
    }
});

当我单击textarea时,虽然其中有内容,但我仍然看到背景图像。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

在你的模糊功能中,你有$ this,但从未定义过。您只在focus()函数的范围内定义它。

答案 1 :(得分:2)

添加Matt所说的内容。 $this未定义。您需要做的是$(this)

$('textarea').blur(function() {
  if($.trim($('textarea').val()).length){
    // Added () around $this
    $(this).css('background-image', 'none');
  } else {
    $(this).css('background-image', $.data(this, 'img'));
  }
});