IE 中 jQuery focus() 和 focusout() 冲突

标签 jquery internet-explorer

不知道如何解决这个问题。

我使用 jQuery.focus()jQuery.focusout() 触发 Ajax 请求并在 WordPress 中重命名帖子。这段代码在 Chrome 和 Firefox 中工作正常,但我无法让它在 IE 上工作。

片段:

$('.editname').on('click', function() {

    var input = $('<input id="editcat" type="text" name="editcat" value="' + name + '" />');
    input.appendTo($(this));
    $("#editcat").focus();
});

$(".editname").focusout(function() {

    $(this).children('input').detach();
    $(this).children('span').show();


});

工作示例: http://jsfiddle.net/moraleida/fE5Tq/3/

似乎 focusout() 事件是在 IE 中的 appendTo 之后调用的,在浏览器有时间 focus() 附加的输入之前。

是否有已知的解决方法?

编辑

focusout 更改为 blur 不起作用。显然,问题在于调用 $("#editcat").focus(); 会使 .editname 失去焦点/模糊。如果我评论该行,输入显示正常,但当我单击以聚焦于它时,它会分离。

最佳答案

尝试模糊事件

$(".editname").on('blur', function() {

    $(this).children('input').detach();
    $(this).children('span').show();


});

关于IE 中 jQuery focus() 和 focusout() 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809388/

相关文章:

javascript - IE9在使用开发者工具时是否启用 'something'?

HTML/CSS : IE8 background overflowing border

javascript - 如何获取表中td对应th的Id

c++ - 在 Win32 中将网站添加到 Internet Explorer 受信任的站点

javascript - 清除 Internet Explorer 中的文件输入框

javascript - 在 Greasemonkey 脚本中添加 jQuery 类

css - Flexbox 在 Firefox 和 IE11 中不包装

javascript - 如何在 JavaScript 中只为 Chrome 增加 margin-right 值?

javascript - AJAX/Javascript 获取提交的表单数据

javascript - toFixed() 文本字段中的简单使用/说明