Internet Explorer在将函数分配给“onfocusout”事件时滞后

时间:2014-10-23 07:37:56

标签: javascript jquery internet-explorer

当用户离开当前输入字段时,我的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;)事件没有滞后。

1 个答案:

答案 0 :(得分:1)

使用onBlur而不是onFocusOut。请注意,onBlur不会冒泡。