0

解決済み: CSS の継承が原因で問題が発生したようです。記録のために、私の元の質問の 2 番目のスニペットは実際に機能しました。

入力とラベルを含む 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 + "']") も使用するようにぼかしイベントをさらに指定したくないですか?

私の心は、入力に集中していて、マウスクリックまたはタブで別の入力に直接移動すると、競合するフォーカス/ぼかし操作が発生することを私に伝えています。

于 2013-07-10T18:15:26.753 に答える