首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.focus()不能在.focus()事件中工作

.focus()不能在.focus()事件中工作
EN

Stack Overflow用户
提问于 2013-06-20 07:18:27
回答 1查看 61关注 0票数 0

我无法在同一元素上成功地使用focusout事件中的.focus()。我也用setTimeout试过了。有什么想法吗?

代码语言:javascript
复制
    $(control).focusout(function (e) {
                    if ($(this).val().length > 0) {
                        for (var ii = 0; ii < sampleDTOList.length; ii++) {
                            if (sampleDTOList[ii]["controlId"] == $(this).attr("id")) {
                                if ($(this).val() <= parseFloat(sampleDTOList[ii]["maxValue"]) && $(this).val() >= parseFloat(sampleDTOList[ii]["minValue"])) {
                                    sampleDTOList[ii]["value"] = $(this).val();
                                    RunRulesOnSample(sampleDTOList[ii]);
                                    return;
                                }
                                else {
                                    $(this).val("");
                                    alert("You must enter a value between " + sampleDTOList[ii]["minValue"] + " and " + sampleDTOList[ii]["maxValue"] + ".");
                                    $(this).focus();
                                    return;
                                }
                            }
                        }
                    }
                });
EN

回答 1

Stack Overflow用户

发布于 2013-06-20 07:28:43

我认为不可能直接在焦点输出事件处理程序上调用焦点函数。此外,不能在事件对象上使用preventDefault(),因为focusout事件是不可取消的。

但是看起来你可以使用setTimeout函数:

代码语言:javascript
复制
$('#foo').focusout(function(e) {
    setTimeout(function() {
        $('#foo').focus();
    }, 10);
});

看看这个jsFiddle

您还可以找到使用mousedown event here的解决方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17202911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档