jquery.keypad.js不适用于动态添加的文本框

时间:2013-04-09 05:44:22

标签: php javascript jquery

我正在使用jquery.keypad.js在用户可以选择的文本框中显示特殊字符(ÁÃ......)。它适用于文本框的第一个字段,当我通过单击“添加更多”按钮添加相同的文本字段时它不起作用。我点击“添加更多”后再次调用该功能,即使它不起作用。可能是什么问题?

$(function () {
        $('.keypadactive').keypad({keypadClass: 'flatKeypad',keypadOnly: false, 
             layout: [<? echo  utf8_encode("'ÁÃÅÀÂÄááåàâäÆæßÇçÐÉËÈÊéëèê', 'ÌÎÍÏìîíïÑñÒÔÖØÓÕðòôöøóõÚÜÙ' ,'ÛùûúüÝýÿÿ¡,°¹²³º¼½¾±µ', '£¥\$¢þ§©®¯·¨¬«»¦ª¶'");?> ], prompt: '',showOn: 'button', buttonImageOnly: true, buttonImage: 'images/spl.jpg'});
});

$('.add_more').live('click',function(){
    $(this).parent().parent().parent().parent().append($('#add_me_next').html());
    $(this).parent().html('<label class="w50">&nbsp;</label><input type="button" name="remove" value="Remove" class="button remove" />');

    setTimeout('keypadCall()',1000);

});

function keypadCall(){
    $('.keypadactive').keypad({keypadClass: 'flatKeypad',keypadOnly: false, 
                 layout: [<? echo  utf8_encode("'ÁÃÅÀÂÄááåàâäÆæßÇçÐÉËÈÊéëèê', 'ÌÎÍÏìîíïÑñÒÔÖØÓÕðòôöøóõÚÜÙ' ,'ÛùûúüÝýÿÿ¡,°¹²³º¼½¾±µ', '£¥\$¢þ§©®¯·¨¬«»¦ª¶'");?> ], prompt: '',showOn: 'button', buttonImageOnly: true, buttonImage: 'images/spl.jpg'});
}

1 个答案:

答案 0 :(得分:0)

尝试将事件委托给dom准备好时可用的最近父项或$(document)本身带.on()处理程序的事件:

$(document).on('click', '.add_more', function(){
    $(this).parent().parent().parent().parent().append($('#add_me_next').html());
    $(this).parent().html('<label class="w50">&nbsp;</label><input type="button" name="remove" value="Remove" class="button remove" />');

    setTimeout(keypadCall,1000);

});

并尝试从()中的keypadCall功能移除setTimeout()