У меня есть JS, который динамически создает новый div (входы внутри формы). Работает отлично. У меня отдельно есть jquery, который проверяет ввод раскрывающегося списка и показывает отдельный div, если щелкнуть конкретный выбор. Работает отлично.
Если я попытаюсь использовать jquery, чтобы показать отдельный div внутри одного из динамически созданных, это не сработает. Первый его экземпляр работает, но ни один из динамически создаваемых. После поиска мне кажется, что мне нужна делегация, но я не могу понять ее для моей конкретной ситуации.
JSFiddle: http://jsfiddle.net/Xyzeg/ (измените раскрывающийся список "CPI" в первом поле , чтобы событие началось). Сценарий включает другой JS для динамического создания div.
Любые указатели будут оценены.
<div style="float:left">
<div id='dynamicInput'>Pension 1: Amount: $<input type='text' name='adjustmentInputs[]' value='0' size='13' maxlength='20'>Start Year:
<input type='text' name='adjustmentInputs[]' value='2032' size='5' maxlength='6'>
<input type='hidden' name='adjustmentInputs[]' value='2100'>
<select name='adjustmentInputs[]'>
<option value='InflationAdjusted'>Inflation Adjusted</option>
<option value='NotInflationAdjusted'>Not Inflation Adjusted</option>
</select>by
<select name='adjustmentInputs[]' class='pensionAdjustment1'>
<option value='CPI'>CPI</option>
<option value='constantPercentage'>Constant %</option>
</select>
<div id='constantPercentageText1' style='display: none'>@ <input type='text' name='adjustmentInputs[]' value='3' size='5' maxlength='6'>%</div>
</div>
<input type="button" value="Add another Portfolio Adjustment" onClick="addInput('dynamicInput');">
</div>
<script>
$("[class*=pensionAdjustment]").change(function() {
var n = $(this).attr('class').replace('pensionAdjustment', '');
var newId = "constantPercentageText" + n;
var selectedItem = $(this).children('option:selected');
if ($(this).val() == 'constantPercentage') {
$("#constantPercentageText" + n).css('display', 'inline');
$("#constantPercentageText" + n).show();
} else {
$("#constantPercentageText" + n).css('display', 'none');
}
});
</script>
$(document).on('change', "[class*=pensionAdjustment]", function() {...
- person dinjas   schedule 16.07.2013