.focus()在悬停事件中无法处理textarea

时间:2016-01-23 22:19:04

标签: javascript jquery hover focus textarea

所以我在这里有这个代码。

timeline.afterMilestonePrototypeCreated = function() {
    $(MILESTONE_PROTOTYPE_SELECTOR).hover(function(e){
       $(this).find('textarea').focus();
    });
}

在创建textarea元素之后,应该将其关注。一切正常,我甚至在创建和悬停后检查了事件是否被调用。每个其他代码都有效,但我无法关注那个textarea元素。经过一些谷歌搜索,我试图添加一个setTimeout,它既不起作用。

谢谢!

解决:

textarea的父元素是一个点,在盘旋之后它变成一个更大的圆圈,而它的内部元素变得可见。问题是,当添加超时时,我设置的持续时间是短的,因此使textarea可见的css转换仍然是这样,它没有聚焦。

2 个答案:

答案 0 :(得分:0)

而不是:

$(e.target).find('textarea').focus();

试试这个:

+------------------------------------------------------+ | HIERARCHICAL_RECORDS | +----------------+--------------------+----------------+ | ORG_ID | NAME | VALUE | +----------------+--------------------+----------------+ | 333 | CC | ... | | 22 | MT | ... | | 22 | TMP | ... | | 333 | TMP | ... | +------------------------------------------------------+

答案 1 :(得分:0)

只要$(this).find('textarea')按预期工作,这可能会有效:

timeline.afterMilestonePrototypeCreated = function() {
    $(MILESTONE_PROTOTYPE_SELECTOR).hover(function(e){
       e.preventDefault();
       $(this).find('textarea').focus();
    });
}

悬停事件会触发focus事件,因此阻止该事件将允许手动focus发生。