簡體   English   中英

將JavaScript中的全局變量傳遞給jquery上的實時事件不起作用

[英]Passing global variable in javascript to live event on jquery does not work

我已經在javascript中動態創建了幾個元素。 其中包括范圍輸入。 我想在“輸入更改”事件上顯示該值。 這些輸入中的每個輸入都有ID,例如“ probbilitate” +數字。 該數字是全局變量,在按鈕的單擊事件中增加。

當我動態創建這些輸入時,輸入更改事件不再起作用。 有一個關於stackoverflow的問題,在該問題中,解決方案是實時事件,而不是事件,並且部分起作用。 代碼是:

  $(document).on('change','#probabilitate'+nrBoli, function(){ //something }) 
問題是,如果事件是在“#probabilitate1”(例如)事件上觸發的,則變量nrBoli在函數內部可以正常工作,但是如果我想將其與id名稱作為參數連接(以我的情況為例)每個元素),則nrBoli不可用。

您需要使用“類”而不是“ id”來獲取所有元素。 使用“ id”,您僅獲得DOM中的第一個元素:

追加元素:

var globalProp = 1;

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

設置變更事件:

每當添加新元素時,都必須設置change事件。

$('.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
    })
};

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM