你可以製作一個這樣的單元上的一段代碼。所有相關的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