0

这应该很容易,但它让我发疯。我正在弹出一个包含 textarea 的 jQuery Tools 覆盖表单,并且我希望该 textarea 在它出现时具有焦点。表单本身运行良好,但我无法集中注意力。呈现表单时运行以下代码:

$(document).ready(function () { 
     console.log('firing!');]
     $('#edit-comment').css('color', '#ff0000');
     $('#edit-comment').focus();
 });

当表单出现时,我在 console.log 中得到了条目,并且我得到了 textarea 颜色的变化,所以代码肯定正在运行并找到 textarea。但我没有将焦点设置到文本区域。

我觉得这很奇怪。有什么见解吗?

4

3 回答 3

1

我怀疑代码在 DOM 中创建 #edit-comment 之前运行。您的代码似乎在 document.ready 上运行。

尝试在$('#edit-comment').focus();加载叠加层的函数内运行代码,看看是否有帮助。

于 2012-04-20T19:39:49.930 回答
0
$(function() {
   console.log("firing!");
   document.getElementById("edit-comment").style.color = "#F00";
   document.getElementByID("edit-comment").focus();
});

但是颜色会改变文本颜色。如果要更改背景,请使用 .backgroundColor,如果要更改边框,请使用 .borderColor

于 2012-04-20T18:57:02.590 回答
0

没有回答那么多,就像踢球一样。时间是浪费;我找到了另一种方法来做同样的事情。我认为 Arno 关于#edit-comment 的确切创建时间的观点是其中的一部分。无论如何,感谢您的帮助!

于 2012-04-20T22:18:29.650 回答