切换背景图像(jQuery)
问题描述:
$('textarea').focus(function() {
var img = $(this).css('background-image');
$(this).css('background-image', 'none');
});
$('textarea').blur(function() {
$(this).css('background-image', img);
});
..似乎不工作。我认为有些事情是错误的,但我无法弄清楚什么。切换背景图像(jQuery)
非常感谢您的帮助!
答
如果定义
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') || '');
});
答
尝试定义的URL地址在CSS中的形象。
var img = 'images/mybg.png';
$('textarea').blur(function() {
$(this).css('background-image', 'url('+img+')');
});
+1 - 我只是做'$ .data(this,'img')''虽然,不需要在这里创建一个浪费的对象。 – 2010-06-21 13:26:16
@Nick:我不知道'$ .data()'也适用于DOM对象。太好了! – jAndy 2010-06-21 13:29:27
恩......你能举个例子吗,我不能让它工作。谢谢! – 3zzy 2010-06-21 13:31:35