已解决:似乎我的问题是由CSS继承引起的。为了记录,我原来问题中的第二个片段实际上有效。
我有带输入和标签的html表单。
当我关注输入时,我可以使用jquery成功更改标签样式。这是使用以下代码段完成的:
$("input, textarea").focus(function(){
$("label[for='" + this.id + "']").addClass("labelfocus");
})
.blur(function()
{
$("label").removeClass("labelfocus");
});
但是,这不适用于动态生成的表单。
我尝试过使用jquery的“$(document).on(...”但是我也没有这样做。请参阅下面的代码:
$(document).on({
focus: function() {
$("label[for='" + this.id + "']").addClass("labelfocus");
},
blur: function() {
$("label").removeClass("labelfocus");
}
}, "input, textarea");
有什么建议吗?谢谢!
答案 0 :(得分:0)
可能有一种更清洁的方式,但我会像这样尝试
$('input, textarea').on('focus', function() {
$("label[for='" + this.id + "']").addClass("labelfocus");
});
$('input, textarea').on('blur', function() {
$("label").removeClass("labelfocus");
});
答案 1 :(得分:0)
如果你使用$(document).on
而不是$("input, textarea").on
,我认为它会起作用。
答案 2 :(得分:0)
我没有测试过这个或者其他什么,但是你不想进一步指定blur事件来使用完整的$(“label [for ='”+ this.id +“']”)? / p>
我的想法告诉我,如果你专注于输入和鼠标点击或直接选项卡到另一个输入,那么就会发生相互矛盾的焦点/模糊操作。