所以我在这里有这个代码。
timeline.afterMilestonePrototypeCreated = function() {
$(MILESTONE_PROTOTYPE_SELECTOR).hover(function(e){
$(this).find('textarea').focus();
});
}
在创建textarea元素之后,应该将其关注。一切正常,我甚至在创建和悬停后检查了事件是否被调用。每个其他代码都有效,但我无法关注那个textarea元素。经过一些谷歌搜索,我试图添加一个setTimeout,它既不起作用。
谢谢!
解决:
textarea的父元素是一个点,在盘旋之后它变成一个更大的圆圈,而它的内部元素变得可见。问题是,当添加超时时,我设置的持续时间是短的,因此使textarea可见的css转换仍然是这样,它没有聚焦。
答案 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
发生。