0

を使用して、「無効」プロパティをtextbox入力フィールドに動的に追加しましたjQuery。しかし、生成された を見ると、「無効」プロパティを追加しHTMLた入力フィールドには表示されません。textbox

それに追加されていないため、他の jQuery 関数が入力されることはありません。

これが私のコードです:

これは、doc load イベントのどこかで発生します。

$('.testGroup :input').prop('disabled', true)

この関数は、入力を無効にした場合にツールチップを表示しますclickhover

$('input:disabled').after(function (e) {
        debugger;
        d = $("<div>");
        i = $(this);
        d.css({
            height: i.outerHeight(),
            width: i.outerWidth(),
            position: "absolute",
        })
        d.css(i.offset());
        d.attr("title", i.attr("title"));
        d.tooltip();
        return d;
    });

と の両方を使用/試しましprop()attr()が、どちらも機能しませんafter()

Paul Rosaniaによると、私はprop().

これを達成する別の方法はありますか?

編集jsFiddle

4

1 に答える 1

1

問題は、ツールチップを追加するコードが、DOM の準備が整った後に 1 回しか実行されないことです。無効にするすべての要素に対して呼び出す必要があります。

簡単な解決策は、ツールチップのメソッドを書くことです:

function AddToolTip() {
    d = $("<div>");
    i = $(this);
    d.css({
        height: i.outerHeight(),
        width: i.outerWidth(),
        position: "absolute",
    })
    d.css(i.offset());
    d.attr("title", i.attr("title"));
    d.tooltip();
    return d;
}

次に、このメソッドを使用して、DOM Ready で無効になっている要素にツールチップを適用します。

$('input:disabled, button:disabled').after(AddToolTip);

入力要素を無効にすると、メソッドが再度呼び出されます

$('#test').prop('disabled', true).after(AddToolTip);

フィドル

于 2014-01-19T14:28:50.067 に答える