【发布时间】:2012-07-18 18:39:49
【问题描述】:
我正在创建一个带有可展开/可折叠列表项的分层列表。当用户单击列表项以展开它时,会弹出一个包含一些信息的表格。现在,grails 正在加载页面时呈现所有表。但是,我只希望在单击列表项时加载表格。我正在使用部分模板来容纳表格 html 并使用
<g:render>
渲染它们。有没有办法转换我要发布的代码,以便 class="list" 的 div 仅在点击时加载?如果没有,有没有办法只在点击时调用 g:render 标签?
<g:each in="${group2List}" var="item">
<li class="liClosed"><b>
${item}
</b> <%= Application.findAllWhere((group2): item, (group1): group).size() %>
<ul>
<div class="list">
<table id="portfolio">
<g:render template="tableHeader" />
<g:render template="applicationRow"
collection="${Application.findAllWhere((group2): item, (group1): group)}"
var="applicationInstance" />
</table>
</div>
</ul></li>
<br />
</g:each>
那么,有没有办法为 li 添加一个 onClick 事件,仅在点击时呈现 div class="list"?或者一种在将这些 g:renders 保留在 ul 中的同时调用这些 g:renders onClick 的方法。
感谢您的帮助!
【问题讨论】:
-
我之所以尝试这样做,是因为当前的方法非常慢,并且页面需要很长时间才能加载
-
g:render 在服务器端执行,而在客户端(浏览器)上执行 onClick 您将两者混合在一起,我想说清楚您的概念。您可以在单击列表项时使用 ajax 加载列表 div 的内容。
标签: html list templates grails render