1

JavaScript でいくつかの要素を動的に作成しました。これらは、とりわけ範囲入力です。「入力変更」イベントで値を表示したい。これらの各入力には、「確率」+数値のような ID があります。この数値はグローバル変数であり、ボタンのクリック イベントで増加します。

これらの入力を動的に作成すると、入力変更イベントが機能しなくなります。解決策がイベントではなくライブイベントであり、部分的に機能するスタックオーバーフローに関する質問があります。コードは次のとおりです。

 $(document).on('change','#probabilitate'+nrBoli, function(){

      //something
  })
問題は、イベントが「#probabilitation1」(たとえば) イベントでトリガーされた場合、変数 nrBoli が関数内で正常に機能することですが、それをパラメーターとして id の名前と連結したい場合 (私の場合、トリガーする各要素)、nrBoli は使用できません。

4

1 に答える 1

0

すべての要素を取得するには、「id」の代わりに「class」を使用する必要があります。「id」を使用すると、DOM の最初の要素のみを取得できます。

追加要素:

var globalProp = 1;

$("#sameContainer").append('<input type="checkbox" id="inputId" class="probabilitate' + globalProp + '"/>');

変更イベントの設定:

新しい要素が追加されるたびに、変更イベントを設定する必要があります。

$('.probabilitate' + globalProp).change(function () {
    //do action
})

例:

var globalProp = 1;

function appendInput(){
    $("#sameContainer").append('<input type="checkbox" id="inputId_a" value="check this" class="probabilitate' + globalProp + '"/>');
    $("#sameContainer").append('<input type="checkbox" id="inputId_b" value="or this" class="probabilitate' + globalProp + '"/>');
    $("#sameContainer").append('<input type="checkbox" id="inputId_c" value="or this" class="probabilitate' + globalProp + '"/>');

    $('.probabilitate' + globalProp).change(function () {
        //do action
    })
};

お役に立てれば。

于 2015-11-12T14:46:22.303 に答える