【发布时间】:2011-04-12 20:40:16
【问题描述】:
我正在开发一个复杂的页面,其中包含一些小部件、一些“可拖动”元素和一个<canvas> 交互式时间线。
问题:
在mouseover - 在可以拖动的元素(实体)上 - 我必须显示一个工具提示,其中包含有关该特定元素的一些高级信息(实体页面的“预览”)。
可拖动的项目(我认为它们约为 100 个)以这种方式表示(其中一些是动态创建的):
<!-- ... -->
<div id="entity-1" class="draggable">
<div class="title">title</div>
<img src="#URL" alt="..." />
<div class="tooltip-wrapper"></div>
</div>
<div id="entity-2" class="draggable">
<div class="title">title</div>
<img src="#URL" alt="..." />
<div class="tooltip-wrapper"></div>
</div>
<div id="entity-3" class="draggable">
<div class="title">title</div>
<img src="#URL" alt="..." />
<div class="tooltip-wrapper"></div>
</div>
<!-- ... -->
其中.tooltip-wrapper 最初设置为display:none 和opacity:0
一般的工具提示是一种包含一些细节的复杂 HTML,即(很多简化)
<div class="tooltip-entity-wrapper">
<div class="title">entity title</div>
<div class="tab"><!-- tab content --></div>
<div class="tab"><!-- tab content --></div>
<div class="tab"><!-- tab content --></div>
<form action="...">
<!-- form content -->
</form>
<a href="#URL"><!-- full entity page link --></a>
</div>
我正在考虑 3 种可能的解决方案:
- 在
mouseover,(在第一个)发出一个返回特定工具提示 HTML 的 ajax 请求,将其注入到工具提示包装器中,显示它并在mouseout隐藏它。 - 在
mouseover上,(在第一个上)发出一个返回json 的ajax 请求,通过js(小胡子)渲染它,将其注入到工具提示包装器中,显示它并在mouseout上隐藏它。李> - 直接在元素内渲染工具提示,并打开
mouseover/mouseout
css/布局/定位不是什么大问题,也是因为我已经创建了一个工具提示 mootools 插件模型(如果您对一些很棒的可定制的 mootools 工具提示插件有任何建议,请告诉我:))。
我只需要一个提示/建议,说明实施此高级“工具提示”系统的方法,或者您是否有更好的解决方案可以建议我。 :)
谢谢大家
附言我正在使用 rails3(以及 haml、scss、compass)和 mootools 作为 js 框架(+ mustache 作为模板系统)开发网络应用程序。
【问题讨论】:
标签: javascript html ruby-on-rails mootools tooltip