我在div中有兩個輸入,並設置tabindex=1
使其可以聚焦。當內部輸入爲焦點時Div改變邊框顏色(焦點狀態)
<div class="wrapper" tabindex="1">
<input class="input" type="text">
<input class="input" type="text">
</div>
而且我SCSS:
div {
border: solid 1px lightgray;
padding:3px;
display: inline-block;
background-color: #fff;
&:focus {
outline: none;
border: solid 1px blue;
}
}
input {
border: solid 1px transparent;
&:focus {
outline: none;
border-bottom: solid 1px red;
}
}
這樣,格不會當輸入是重點關注。 所以,我使用jQuery來做到這一點。
(function($) {
$(".input").on("focus", function() {
$(this).parent("div").addClass("focus");
});
$(".input").on("focusout", function() {
$(this).parent("div").removeClass("focus");
});
})(jQuery);
我不知道是否有更好的辦法,使這個?
Here是我的JSFiddle。
代碼已經實現了你正在嘗試做的事情。你想做什麼「更好」?你要加快速度,還是要保持易讀性?無論哪種方式,你的功能已經幾乎是最好的方式去做你想做的事情......或者你是否試圖在輸入焦點上改變'.wrapper'的邊界? –
@ObsidianAge有沒有可能讓這個沒有js?是的,我試圖在輸入焦點上改變'.wrapper'的邊界。 –
爲什麼你想讓DIV可以聚焦?如果用戶選中該選項並將其顏色從灰色更改爲藍色,但用戶仍然無法輸入,直到他們再次選擇了一個他們看不到的輸入爲止。 (另外,tabindex爲1會將其拉出標準標籤序列,這通常是一個壞主意。) – nnnnnn