将 DIV 显示为叠加层
Display a DIV as over overlay
我一直是一个后端开发人员,并试图使用 RoR 做一些 UI 工作。
I have a list object that I want to display.
Object1
Object2
Object3
Object4
...
我已经做到了这一点。
现在,当用户单击 Object1 时,我想显示对象中的详细信息(类似于 http://jquerytools.org/demos/overlay/index.htm)
我理解示例中的代码。
您有隐藏的div,单击一下即可显示它。但是就我而言,我有很多对象(几百个),并且每个对象都非常大,我不想在加载页面时检索所有数据。所以目前当用户点击一个对象时,我只是打开一个新页面,其中所有数据都详细显示。我想要的是打开一个像示例一样的叠加层,并在其中渲染数据。
我不熟悉 UI 开发的术语,并且在我开始自己编码之前,我有一个困难的类型来寻找它的现有实现。
许可对我来说是一个问题,所以我想坚持使用vanilla jQuery和RoR.,而不是使用具有各种许可方案的第三方库。
正如我在评论中所说,您可以使用 AJAX 执行此操作。它的作用是,当您单击链接时,它不会重新加载整个页面,而是异步向服务器发送请求并返回响应,而响应又可以在javascript中处理以更新页面。
因此,在您的场景中,当单击链接时,您只需向服务器发送 ajax 请求,检索要在覆盖框中显示的数据,设置文本,然后执行必要的操作以显示覆盖框本身。
当您尝试处理 AJAX 本身时,它可能会导致一些小问题。所以我建议使用这里找到的JQuery库的ajax API:http://api.jquery.com/jQuery.ajax/。这更易于使用,并且跨浏览器兼容。
对于这样的div
:<div id="overlay"></div>
<button id="load">Load Box</button>
你可以像这样使用一些:
$("#load").click(function(){
//ajax request
$.ajax({
url: "your/web/service.aspx",
cache: false
})
.done(function(response_text){
//setting the response got to the overlay box
//this can be a plain text or html or json.
//you need to set the box appropriately.
$("#overlay").text(response_text);
//then do the needful to display overlay box
});
});
正如Lakshmi的评论中所述,您应该使用Ajax方法加载和显示过多的数据。您的 Ajax 响应应该用对象详细信息填充隐藏元素,然后触发过度显示。
- 叠加显示在按钮上方
- 带有 d3 的嵌入式 Google 地图.js叠加层显示 UI 选项和叠加元素,但不是地图本身
- 谷歌地图API V3 - 点击标记显示更多信息内容作为叠加层(如谷歌地图)
- 将 DIV 显示为叠加层
- 单击 标记时,显示叠加层,如果选择“是”作为选项,则跟随 的 href URL
- 基础 4 显示不起作用仅显示叠加层
- 是否可以在实例化的街景全景中显示叠加层/标记
- 传单不会将本地图像显示为叠加
- 如何在煎茶触摸 2 中单击面板时显示叠加层
- 无法在网页上显示的 HTML 段落上叠加图像图标
- 如何在模糊浏览器主窗口时将图像显示为叠加层
- 谷歌地图:叠加点未显示
- 为什么Alt不显示在叠加时,点击图像
- jQuery工具叠加不显示在第二次点击
- 用于显示/隐藏叠加的简单触发器元素(最佳实践)
- 如何显示叠加加载gif,同时完成我的http.Post in angular
- Jquery叠加不显示
- 叠加图像不显示
- Colorbox's叠加不显示
- 如何显示叠加时,搜索按钮被点击