0

已解决:似乎我的问题是由 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");

有什么建议吗?谢谢!

4

3 回答 3

0

我还没有测试过这个或任何东西,但你不想进一步指定模糊事件以使用完整的 $("label[for='" + this.id + "']") 吗?

我的想法告诉我,如果您专注于一个输入并直接单击鼠标或 Tab 到另一个输入,那么就会发生冲突的焦点/模糊操作。

于 2013-07-10T18:15:26.753 回答
0

可能有更清洁的方法,但我会这样尝试

$('input, textarea').on('focus', function() {
$("label[for='" + this.id + "']").addClass("labelfocus");
});

$('input, textarea').on('blur', function() {
$("label").removeClass("labelfocus");
});
于 2013-07-10T14:19:00.833 回答
0

而不是$(document).on如果你使用$("input, textarea").on我认为它会起作用。

于 2013-07-10T14:19:14.943 回答