javascript - 显示相对于 &lt;textarea&gt; 的 <div>

标签 javascript jquery jquery-ui

我有一个盒子(一个绝对定位的 <div> )。我还有一系列<textarea><input type="text">表单控件。当我关注任何<textarea>时我想在焦点项目左侧显示框(覆盖下面的任何内容),可能带有精美的faceIn()动画:

+-----------+---------------------------
| div       | textarea                 |
|           |                          |
|           |                          |
+-----------+                          |
            |                          |
            |                          |
            |                          |
            +--------------------------+

认为我可以使用 jQuery 或 jQuery UI Position 来为我定位元素(毕竟,jQuery UI Datepicker 行为显示的日历与我想要的框非常相似),但我无法浏览文档。首先,两个库都有同名的不同项目:

...两者都有相同的限制:

  • jQuery不支持获取隐藏元素的位置坐标
  • jQuery UI 不支持定位隐藏元素。

到目前为止我的代码如下所示:

#box{
    left: 0;
    top: 0;
    position: absolute;
    width: 30px;
    height: 20px;
    background-color: orange;
}
var $box = $('<div id="box"></div>').hide().appendTo("#main-form");
$("#main-form").on("focus", ":text, textarea", function(){
    $text = $(this);
    $box.show("slow").position({
        my: "left top",
        at: "left top",
        of: $text
    });
});

当我聚焦文本区域时,$box显示但它不会从窗口的左上角移动。

我错过了什么?

<小时/>

编辑:根据您的建议,我很快就使其在 Fiddle 中工作(无动画版本)。但不在我的应用程序中。进一步的调试发现我忘记包含 Position我的 jQuery UI 自定义下载中的组件!由于 jQuery 中具有相同名称的方法,它不会引发错误。显然,当您同时启用两者时,您会根据参数得到一个或另一个...

最佳答案

将元素可见性设置为隐藏,而不是将其显示设置为无。

jQuery 不将 visibility:hidden 视为“隐藏元素”。

编辑:

另外,我不确定这是否正确。

$box.show("slow").position({

您的方法 position() 发生在动画完成之前。请尝试以下操作,而不是使用回调函数。

$box.show("slow", function() {
    $box.position();
});

关于javascript - 显示相对于 &lt;textarea&gt; 的 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15504999/

相关文章:

jquery - 重新加载单个 jqGrid 行?

jQuery .show() 向元素添加样式 ="display:inline-block"

javascript - 使用唯一的 IDS 将相同的按钮 UI 图标添加到不同的按钮

jquery - 在 IE8 中,jquery-ui 的对话框将其内容的高度设置为零。我怎样才能解决这个问题?

javascript - 正则表达式构建字符串直到遇到第 N 个匹配项

javascript - 如何将状态作为 redux 操作传递

javascript - 为什么我定义的字符串打印到控制台时显示为未定义?

javascript - jQuery animate() 和同时滑动

JavaScript:如果定义了参数,函数将搜索参数在数组中出现位置的索引

javascript - 如何在函数外传递变量