2016-02-25 10 views
0

У меня есть 2 модальные диалоговые окна:Радиокнопка событие не стрельбы

  1. Содержит предметы
  2. Содержит версии этих элементов

Когда пользователь выбирает элемент для просмотра, текущие версии этот элемент извлекается. Эти версии отображаются в таблице в модальном диалоговом окне 2. Каждая строка в этой таблице содержит 1 версию. Есть 2 колонки:

  1. Радиокнопка выбрать версию
  2. Версия Имя

Таким образом, эта таблица диалога 2-го модального производится во время выполнения. Это мой код:

JQuery/JS

function showComponentVersionModal(assocComs ,p, comVersions, comVersionArray) { 
    $('#component-versions-modal .modal-body tbody').find('tr:gt(0)').remove(); 
     var winW = window.innerWidth; 
     for (var j in comVersions) { 
      if (comVersions[j].title === p.text()) { 
       var newRow = '<tr>' + 
           '<td><input name="versionCheck" type="radio"/></td> ' + 
           '<td></td>' + 
          '</tr>'; 
       if ($('#component-versions-modal .modal-body tbody tr:last td:nth-child(2)').text() !== comVersions[j].version) { 
        $('#component-versions-modal .modal-body tbody tr:last').after(newRow); 
        $('#component-versions-modal .modal-body tbody tr:last td:nth-child(2)').text(comVersions[j].version); 
       } 
      } 
     } 
    } 
} 

Эта функция выполняется, когда пользователь выбирает элемент, и, следовательно, производит диалог 2-й модальный с его версии.

$('input[name="versionCheck"]').on('change', function() { 
    if ($(this).prop('checked').length <= 0) { 
     ... 
    } else { 
     ... 
    } 
}); 

Когда я нажимаю/меняю любую из этих переключателей, она не входит в эту функцию. Любая помощь оценивается.

ответ

5

делегат событие статическому родителя:

$('#component-versions-modal').on('change', 'input[name="versionCheck"]', function() { 

Когда элементы создаются динамически/добавлены в DOM затем прямое событие связывания не регистрирует события, связанные с ней.

Итак, в этом случае вам необходимо делегировать событие ближайшему статическому родителю #component-version-modal, который находится в вашем случае. Или $(document), который всегда доступен для делегирования событий.

+1

Большое спасибо! Это сработало отлично :) будет за исключением этого ответа через несколько минут, когда я смогу – wmash

+0

@WillAshworth рад помочь вам и вам будет рад. – Jai

0

попробовать сделать как этот

$(document.body).on('change','input[name="versionCheck"]', function() { 
//your code 
}); 
+0

Это был бы лучший ответ, если бы он включал объяснение вместе с кодом. –