当用户离开当前输入字段时,我的HTML表单正在执行操作(向表单添加新行以便能够输入另一个电话号码)。
使用IE执行此代码会导致大量延迟:
$("#createOrUpdateContactPersonPhoneNumber0").on('focusout', function() {
addAnotherRow();
});
function addAnotherRow() {
$("#phoneNumberTable tr:last-child").before('<tr><td><select style="width: 100px;" id="createOrUpdateContactPersonPhoneType' + $("#phoneNumberTable tr:not(:first-child):not(:last-child)").length + '"></select></td><td><select id="createOrUpdateContactPersonPhoneCountry' + $("#phoneNumberTable tr:not(:first-child):not(:last-child)").length + '"></select></td><td><input style="height: 21px;" type="text" id="createOrUpdateContactPersonPhoneNumber' + $("#phoneNumberTable tr:not(:first-child):not(:last-child)").length + '"/></td><td><input style="height: 21px; width: 100px;" type="text" id="createOrUpdateContactPersonPhoneExtension' + $("#phoneNumberTable tr:not(:first-child):not(:last-child)").length + '"/></td><td><select id="createOrUpdateContactPersonPhonePurpose' + $("#phoneNumberTable tr:not(:first-child):not(:last-child)").length + '"></select></td><td><center><input type="radio" name="createOrUpdateContactPersonPhonePrimary" id="createOrUpdateContactPersonPhonePrimary' + $("#phoneNumberTable tr:not(:first-child):not(:last-child)").length + '"/></center></td><td></td></tr>');
};
添加函数的代码&#34; addAnotherRow()&#34;直接进入.on(&#39; focusout&#39;)事件没有滞后。
答案 0 :(得分:1)
使用onBlur而不是onFocusOut。请注意,onBlur不会冒泡。