0

我有一个具有客户搜索功能的管理网页。我键入名称,然后使用 ajax 将匹配客户的表(以及每个客户的相关数据有限)注入到页面中。我希望能够单击客户(一行)并显示客户的个人资料。配置文件可能包括多个元素、表单、按钮和复杂功能。

我不想让这个配置文件出现在单独的页面或其他东西上,我希望它被注入到我点击的位置(在客户行的下方),然后在我完成后关闭它。

我尝试将这些元素添加到 DOM,但标签之间的任何内容都作为表格的一部分出现(全部压缩到一个单元格中)。我应该先以某种方式拆分桌子吗?还是一开始就不使用桌子?

我正在寻找一个强大的解决方案,因为我也需要在站点的其他部分中像这样“插入模块”。

4

2 回答 2

0

去年我做了类似的实现。

与其他人的建议相反,我认为添加行不是一个好主意。原因是您需要使用事件委托来处理用户点击,而添加行会弄乱或至少使您的实现复杂化。

我的选择是在现有客户行中插入一个表。叠加层或工具提示将提供更简洁的实现,但仅在您一次只需要扩展一个客户时才有效。

于 2013-01-04T23:10:19.433 回答
0

如果您希望数据显示为内联(将其他内容向下推)
,我会<tr>在与您的客户(或替换它)的数据之后 添加一秒钟,并将<td>colspan设置为填充表格的宽度。display:none然后,您可以在不再需要时删除或删除该行。

如果您希望数据显示为覆盖(覆盖其他内容)
,我将使用 JavaScript 来确定您的行中第一个 TD 的屏幕坐标,并在该位置放置一个绝对定位的 div。(这类似于内容丰富的“工具提示”。)

如果可以合理地预期用户希望将“个人资料”中的数据与其他客户屏幕上已经显示的数据进行比较,我个人会使用第一个。如果不是这种情况,我会使用第二种解决方案,以尽量减少页面上的内容更改量(以便用户保持定向)。

于 2013-01-04T22:38:52.347 回答