我的focusin对我的附加输入元素不起作用

时间:2014-05-14 07:56:25

标签: javascript jquery html

我的程序有一个动态表,结构是:

<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");
});

但它不适用于我的附加输入文字。 如果我从一开始就提供输入文本(不是动态的),它就有效。 有人请帮帮我。

1 个答案:

答案 0 :(得分:0)

您需要使用 event delegation 将事件附加到动态添加的元素:

$("#selectedItems").on("focusin","input[type='text'][name*='PriceEffect']",function(){
    alert("a");
});