0

我正在使用 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'});
}
4

1 回答 1

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

});

并尝试删除()from中的keypadCall函数setTimeout()

于 2013-04-09T05:53:40.097 回答