你可以制作一个这样的单元上的一段代码。所有相关的id值都会更改为类名称,并将整个片段放入容器中。这可以让我们以相对于导致事件的对象的通用方式查找与此输入容器关联的对象。
<div class="inputContainer">
<span class="orderlabel-left">
<img src="resources/images/labelbackground-left.png" class="leftsidecorneruser">
</span>
<span class="orderlabel orderlabelcommon">Username</span>
<span class="orderlabel-right">
<img src="resources/images/labelbackground-right.png" class="rightsidecorneruser">
</span>
<div>
<input type="text" value="" name="" class="orderinput" size="40" tabindex="1" id="user">
</div>
</div>
$('input').focus(function() {
var container = $(this).closest(".inputContainer");
container.find(".leftsidecorneruser").attr("src", "resources/images/yellowleft.png");
container.find(".rightsidecorneruser").attr("src", "resources/images/yellowright.png");
container.find(".orderlabelcommon").removeClass("orderlabel").addClass("yellowbackground");
});
$('input').blur(function() {
var container = $(this).closest(".inputContainer");
container.find(".leftsidecorneruser").attr("src", "resources/images/labelbackground-left.png");
container.find(".rightsidecorneruser").attr("src", "resources/images/labelbackground-right.png");
container.find(".orderlabelcommon").addClass("orderlabel").removeClass("yellowbackground");
});
仅供参考,不同的方法会少了很多代码来完成,并大多采用CSS规则是这样的:
$('input').focus(function() {
$(this).closest("inputContainer").addClass("hasFocus");
});
$('input').blur(function() {
$(this).closest("inputContainer").removeClass("hasFocus");
});
然后,你只会让你的所有CSS规则,但这取决于是否一个对象是否有父级CSS类.hasFocus
。图像将不得不变成背景图像,但它们甚至可以在CSS中完成。
这是什么问题?它不起作用吗?你得到什么错误? – ManseUK 2012-03-14 21:35:04
请**想象一下,你是别人正在阅读你的问题**,你知道那个人问什么? – gdoron 2012-03-14 21:39:17
我要求将背景更改为输入上方的文本。我已经重新格式化并使其更易于阅读。当你加载页面“inputtoptext”有一个蓝色的背景。我想在点击文本输入框时将其更改为黄色。 – 2012-03-15 20:20:23