标签焦点不会更改css样式
Label focus does not change css style
我有一个简单的表单,想通过更改背景色来突出显示聚焦标签,但jquery在这里似乎不起作用。控制台没有显示任何错误。有人能帮我吗?
<form action="" method="POST" id="qrForm">
<label for="enter1">Enter<input id='enter1' type="radio" name="enter"></label>
<label for="enter2">Exit<input id='enter2' type="radio" name="enter"></label><br>
<label for="device1">Took a device<input id="device1" type="radio" name="device"></label>
<label for="device2">Returned a device<input id="device2" type="radio" name="device"></label>
</form>
<script>
$("label").focus(function(){
$(this).css('background-color', '#00CC66');
});
</script>
实际上,我可以通过添加/删除一个类来完成它,但我想知道为什么这个不起作用。
既然可以在CSS中使用js,为什么还要使用它?
label:focus {
background-color: #00cc66;
}
如果您希望label
元素是可聚焦的,您也希望添加tabindex=0
,但是,就像您单击标签一样,焦点会移动到相关的input
元素
或者,您可以使用css下一个同级选择器,如下所示:
html:
<input type="text" id="foo" class="foo"><label for="foo">label</label>
和css:
.foo:focus + label {
background-color: #00cc66;
}
或者使用不同的标记和css选择器
您不能使用.focus()
来触发标签的焦点,而只能使用input
来触发,请查看此处
$("input").focus(function(){
$('label').css('background', '#00CC66');
});
或
$("input").focus(function(){
$(this).closest('label').css('background', '#00CC66');
});
试试这个,因为你不能在标签上使用焦点-
$( "form input:radio" ).focus(function(){
$(this).parent('label').css('background-color', '#00CC66');
});
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- FF和Chromium中CSS样式按钮的外观差异
- CSS样式属性留空
- CKeditor预览插件.js,为Chrome和IE进行编辑.因为它拒绝CSS样式
- 基于路由的CSS样式-Angular2
- 为未标记的文本添加CSS样式
- 使用JQuery将现有CSS样式扩展%-%
- JavaScript-在keyDown上切换css样式
- React js应用程序's在托管应用程序中打开时将覆盖css样式
- 如何在javascript中更改段落中不同行的css样式
- 通过javascript设置IE特定的css样式
- PHP,MySQL,AJAX-调用AJAX结果后,Bootstrap CSS样式不会显示
- 使用javascript/jquery检查.css样式表的名称
- JavaScript和CSS样式不适用于我的“;谷歌网站”;页
- 未使用jQuery验证器选中Css样式复选框时
- javascript正则表达式,用于编辑元素内部的css样式属性
- css样式加载+id.例如加载1、加载300
- 无法在运行时将CSS样式添加到元素中
- d3js 通过其 CSS 样式选择所有元素
- 如何根据浏览器宽度动态调整 css 样式表