Javascript 当另一个元素处于活动状态时,jQuery会更改元素的css
当输入变为“活动”时,我试图更改与输入元素相邻的标签的背景色 这将需要为点击输入和在输入元素之间进行制表工作 如果用户单击输入,我可以让它工作,但是如果用户将选项卡插入输入元素,我的解决方案就不起作用。我还必须为每个输入元素重复代码。考虑到我可能有相当多的输入元素,我想一定有一个更优雅的方式 这里是一个基本HTML+CSS的链接Javascript 当另一个元素处于活动状态时,jQuery会更改元素的css,javascript,jquery,css,html,Javascript,Jquery,Css,Html,当输入变为“活动”时,我试图更改与输入元素相邻的标签的背景色 这将需要为点击输入和在输入元素之间进行制表工作 如果用户单击输入,我可以让它工作,但是如果用户将选项卡插入输入元素,我的解决方案就不起作用。我还必须为每个输入元素重复代码。考虑到我可能有相当多的输入元素,我想一定有一个更优雅的方式 这里是一个基本HTML+CSS的链接 假设我已经理解了您要正确执行的操作,只需将事件处理程序绑定到和事件即可。您可以使用查找紧挨着前面的同级,并设置CSS属性: $("input").focusin(fun
假设我已经理解了您要正确执行的操作,只需将事件处理程序绑定到和事件即可。您可以使用查找紧挨着前面的同级,并设置CSS属性:
$("input").focusin(function() {
$(this).prev("label").css("background-color", "red");
}).focusout(function() {
$(this).prev("label").css("background-color", "gray");
});
这里有一个。假设我已经理解了您试图正确执行的操作,只需将事件处理程序绑定到和事件。您可以使用查找紧挨着前面的同级,并设置CSS属性:
$("input").focusin(function() {
$(this).prev("label").css("background-color", "red");
}).focusout(function() {
$(this).prev("label").css("background-color", "gray");
});
这是一个。我在评论中撒了谎——我将从头开始写这篇文章。我假设您在使用单击而不是选项卡时遇到的问题是由于使用了
.click()
jQuery函数。与CSS类一起使用.focus()
,应该可以提供所需的结果:
jQuery代码:
$('input:text').focus(function(e) {
$('label').removeClass('active');
$(this).prev('label').addClass('active');
});
额外CSS:
label.active {
background: red !important;
}
我在评论中撒了谎-我将从头开始写这篇文章。我假设您在使用单击而不是选项卡时遇到的问题是由于使用了
.click()
jQuery函数。与CSS类一起使用.focus()
,应该可以提供所需的结果:
jQuery代码:
$('input:text').focus(function(e) {
$('label').removeClass('active');
$(this).prev('label').addClass('active');
});
额外CSS:
label.active {
background: red !important;
}
没问题,很高兴我能帮忙:)没问题,很高兴我能帮忙:)谢谢。是的,我一直在使用
。click()
。我认为这种方法可能比James的方法更可取,因为CSS是独立于脚本可见的?我通常更喜欢使用类,但这取决于。对于单个CSS属性,它没有多大区别;如果你改变了倍数,那么一个类就简单多了。它也能把事情分开一点。谢谢。是的,我一直在使用。click()
。我认为这种方法可能比James的方法更可取,因为CSS是独立于脚本可见的?我通常更喜欢使用类,但这取决于。对于单个CSS属性,它没有多大区别;如果你改变了倍数,那么一个类就简单多了。它也确实把事情分开了一点。