【发布时间】:2016-05-31 14:55:18
【问题描述】:
我正在使用 ajax 动态创建一个 div。现在,如果 ajax 调用成功,那么我为 div 元素创建了一个字符串并将其附加到原始 div id。 这是我的代码
$.ajax({
type:"GET",
url:"resources/json/asnData.json",
dataType:"json",
success:function(data){
$.each(data.Payload, function(index, val){
i=i+1;
stmt+='<div class="row">'+
'<section class="col col-2">'+
'<label class="input"><i class="icon-append fa fa-key"></i>'+
'<input type="text" name="keyName" value="'+val.key+'" readonly/>'+
'</label>'+
'</section>'+
'<section class="col col-3">'+
'<label class="select">'+
'<select id="dataConversionType'+i+'" class="dataConversionType">'+
'<option value="HEX">HEX</option>'+
'<option value="ALL">Compare All</option>'+
'<option value="ASCII">ASCII</option>'+
'<option value="STRING">STRING</option>'+
'<option value="INT">INTEGER</option>'+
'<option value="BINT">BIG INTEGER</option>'+
'</select><i></i>'+
'</label>'+
'</section>'+
'<section class="col col-5">'+
'<label class="input"><i class="icon-append fa fa-dashcube "></i>'+
'<input id="convertedType'+i+'" type="text" value="'+val.value+'" readonly/>'+
'</label>'+
'</section>'+
'</div>';
});
$(".dataParser").append(stmt);
现在有一个功能,如果有人在选择框中选择一个值,然后触发并显示。
$('#dataConversionType'+i).change(function(e) {
e.preventDefault();
var conversionType=$(this).val(); //I have doubt here also..
console.log(conversionType);
if(conversionType == 'ALL') {
console.log('ALL-Show a modal with each possible conversion');
}
但这不起作用。如果我使用类名调用此函数。但是我必须使用带有 i 值的 id 调用函数,以便使用 i 值我也可以在其他字段中设置一些值。 任何帮助将不胜感激...
【问题讨论】:
-
您需要将
change事件委托给document。还有,我不明白i你的事件绑定代码是什么? -
使用jquery on() 方法为动态生成的元素绑定事件。另外恕我直言,您应该在用例中使用类名
-
i定义在哪里? -
你能提供你的 asnData.json 吗?
标签: javascript jquery html css ajax