【发布时间】:2015-11-29 17:02:51
【问题描述】:
http://jsfiddle.net/g3u7hxr6/4/
我有以下代码,目前它使用下拉框更改所有 textareas css 值。
I want it so that when 1 textarea is selected and glowing green, the dropdown boxes will only change the css for the selected textarea rather than all of them.
基本上我希望能够单独更改每个文本区域的字体。
我考虑使用另一个下拉框来选择要更改的文本区域。但必须有一种方法让 javascript 检测选定的文本区域并仅对其进行更改。我需要为每个 textarea 添加一个唯一的 id 字段,但我完全迷失了 javascript。请帮忙!!!
感谢 Binvention 的回答: http://jsfiddle.net/g3u7hxr6/19/
JS:
$(function () {
$("[id^=font]").on('change', function () {
$('.address').css(this.id, /\d/.test(this.value) ? this.value + "px" : this.value);
});
});
$('.address').focus(
function(){
$(this).parent('div').css('box-shadow','0px 0px 10px green');
}).blur(
function(){
$(this).parent('div').css('box-shadow','0px 0px 0px');
});
HTML:
<div class="options">
<div class="left">Font:
<br>Size:
<br>Weight:</div>
<div class="right">
<select name="fontFamily" id="fontFamily">
<option selected value="Verdana">Verdana</option>
<option value="Arial">Arial</option>
</select>
<br>
<select name="fontSize" id="fontSize">
<option value="8">8</option>
<option selected value="16">16</option>
<option value="24">24</option>
</select>
<br>
<select name="fontWeight" id="fontWeight">
<option selected value="Bold">Bold</option>
<option value="Normal">Normal</option>
</select>
<br /> <br />
</div>
<div class="page">
<div class="left border">
<textarea class="address" tabindex="1">text area 1</textarea>
</div>
<div class="right border">
<textarea class="address" tabindex="4">text area 4</textarea>
</div>
<div class="left border">
<textarea class="address" tabindex="2">text area 2</textarea>
</div>
<div class="right border">
<textarea class="address" tabindex="5">text area 5</textarea>
</div>
<div class="left border">
<textarea class="address" tabindex="3">text area 3</textarea>
</div>
<div class="right border">
<textarea class="address" tabindex="6">text area 6</textarea>
</div>
</div>
CSS:
.left {
float: left;
}
.right {
float: right;
}
.options {
width: 200px;
}
.page {
width: 440px;
}
.border {
border:1px solid #888;
border-radius: 5px;
padding: 5px;
margin: 0 0px 0px 0;
}
textarea {
resize:none;
height: 100px;
width: 200px;
overflow: auto;
font-family: Verdana;
font-size: 16px;
}
【问题讨论】:
-
尝试使用父母而不是父母或摆脱论点真的什么都不做
-
第二位 javascript 仅用于在 textarea 的父 div 周围发光...我想在我可以正常工作之前将删除代码!
-
要使其只有当前选定的框光泽,您可以使用 :focus 指示器
-
您的问题是,为了更改字体类型,文本区域不再集中,因此与您想要为所选内容添加类的其他文本区域无法区分,然后每次单击了一个新文本框,将其从旧文本框中删除并将其添加到新文本框中
标签: javascript php jquery html css