2015-11-12 6 views
1

Я создал несколько элементов динамически в javascript. Это, помимо прочего, диапазон входных данных. Я хочу, чтобы событие «изменение ввода» отображало значение. Каждый из этих входов имеет id как «probabilitate» + number. Число - глобальная переменная и увеличивается при нажатии на кнопку нажатием кнопки.Передача глобальной переменной в javascript для прямого события на jquery не работает

Когда я динамически создаю эти входы, событие изменения ввода больше не работает. Возникает вопрос о stackoverflow, в котором решение является живым событием, а не событием, и оно работает частично. Код:

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

 
     //something 
 
    })
Проблема заключается в том, что если событие инициируется на «# probabilitate1» (например) событие, переменная nrBoli отлично работает внутри функции, но если я хочу, чтобы сцепить его с именем id в качестве параметра (мой случай, для запуска для каждого элемента), nrBoli недоступен.

+0

Можете ли вы создать plunkr для воспроизведения проблемы? –

ответ

0

Чтобы получить все элементы, вам нужно использовать 'class' вместо 'id'. Использование 'ID', вы получите только первый элемент в DOM:

Append элементы:

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 
    }) 
}; 

Надеется, что это помогает.

 Смежные вопросы

  • Нет связанных вопросов^_^