2

私はいくつかの読み取り専用のテキストフィールドと、プレーンな古い JavaScript で書かれた日付ピッカーを持っています。問題は、テキストがいつ設定されているかを検出する必要があることですが、サイト全体で同じ js が使用されているためsomething.trigger('change')、js ファイル内にコード ( など) を実際に配置することはできません。カレンダー js を変更せずに変更を検出する他の方法はありますか?

4

1 に答える 1

2

まあ、JavaScriptで値を変更するとonchangeが起動しない場合もあります。

ミューテーションイベントがありましたが、それらは非推奨であり、将来的にはミューテーション オブザーバーが存在する予定ですが、完全にサポートされることは長い間ありません。では、その間に何ができますか?

タイマーを使用して要素を確認できます。

function addValueListener(elemId, callback) {
    var elem = document.getElementById(elemId);
    var lastValue = elem.value;
    window.setInterval( function() {   
       var value = elem.value;
        if (value !== lastValue) {
            callback();   
            lastValue = value;
        }
    },10);
}

jQueryとして書かれています:

function addValueListener(elemId, callback) {
    var elem = $(elemId);
    var lastValue = elem.val();
    window.setInterval( function() {   
        var value = elem.val();
        if (value !== lastValue) {
            callback();   
            lastValue = value;
        }
    },10);
}

実行例: jsFiddle

于 2012-05-16T05:45:09.447 に答える