我有一些JS動態創建一個新的div(在表單內輸入)。它效果很好。我分別有一些檢查下拉輸入的jquery,並且如果單擊特定的選擇,則顯示單獨的div。它效果很好。jquery在動態創建的div中選擇動態類ID
如果我嘗試使用jquery在其中一個動態創建的內部顯示單獨的div,它不起作用。它的第一個實例工作,但沒有動態創建的。經過四處搜尋,看起來我需要一個代表團,但似乎無法解決我的具體情況。
JSFiddle:http://jsfiddle.net/Xyzeg/(在第一個字段中更改「CPI」下拉菜單,以使事件關閉)。小提琴包括用於動態創建div的其他JS。
任何指針,將不勝感激。
<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>
您必須將事件委託給事件綁定時存在的元素。 – Mathletics
要擴展@Mathletics評論,請查看jQuery.on。 '$(document).on('change','[class * = pensionAdjustment]「,function(){...' – dinjas
所以,你說因爲動態創建的div在搜索之前不存在,我不能像我這樣綁定事件嗎?那麼解決方法是什麼? –