您可以使用以下one
方法:
将处理程序附加到元素的事件。每个元素最多执行一次处理程序。
$('.lastName').one('click', function(e){
$('#add_new',pupils_form).parent().before(pupils_row);
});
此外,当您为输入绑定处理程序时,您可以将处理程序放在函数之外,请注意您的函数会调用自身并连续运行。如果要在页面加载时执行处理程序,可以触发事件:
$('.lastName').focus(function(e){
$('#add_new',pupils_form).parent().before(pupils_row);
}).focus()
对于动态生成的元素,您应该委托事件,请尝试以下操作:
$(document).on('focus', '.lastName', function(){
$('#add_new',pupils_form).parent().before(pupils_row);
})
您可以使用data-*
属性,请尝试以下操作:
<input type='text' class='lastName' data-run='go'/>
$(document).on('focus', '.lastName', function(){
if ( $(this).data('run') == 'go') {
$('#add_new',pupils_form).parent().before(pupils_row);
$(this).data('run', 'stop')
}
})