我的程序有一个动态表,结构是:
<table id="selectedItems">
</table>
我将使用jquery附加它:
var i=0;
$("#selectedItems").html('');
$("#selectedItems").append(
'<tr>' +
'<th width="30px"><?=loadLanguage("admindisplay",$this->session->userdata("jw_language"),"form-delete")?></th>'+
'<th width="115px"><?=loadLanguage("admindisplay",$this->session->userdata("jw_language"),"invoice-qty")?></th>'+
'<th><?=loadLanguage("admindisplay",$this->session->userdata("jw_language"),"invoice-item")?></th>'+
'<th><?=loadLanguage("admindisplay",$this->session->userdata("jw_language"),"invoice-price")?></th>'+
'<th><?=loadLanguage("admindisplay",$this->session->userdata("jw_language"),"invoice-discount")?></th>'+
'<th><?=loadLanguage("admindisplay",$this->session->userdata("jw_language"),"invoice-subtotal")?></th>'+
'</tr>'+
'<tr>'+
'<td></td>'+
'<td class="qty"><input type="text" name="qtyPriceEffect'+i+'" class="required number qty" id="qtyItem'+i+'" value="0"/></td>'+
'<td></td>'+
'<td><input type="text" name="prcPriceEffect'+i+'" class="required currency qty" id="prcItem'+i+'" value="0"/></td>'+
'<td><input type="text" name="dscPriceEffect'+i+'" class="required number qty" id="dscItem'+i+'" value="0"/></td>'+
'<td id="subTotal'+i+'">0</td>'+
'</tr>'
);
我有一个功能:
$("input[type='text'][name*='PriceEffect']").focusin(function(){
alert("a");
});
但它不适用于我的附加输入文字。 如果我从一开始就提供输入文本(不是动态的),它就有效。 有人请帮帮我。
答案 0 :(得分:0)
您需要使用 event delegation 将事件附加到动态添加的元素:
$("#selectedItems").on("focusin","input[type='text'][name*='PriceEffect']",function(){
alert("a");
});