jQuery 选项卡 - 选择创建内容面板的位置

发布于 2024-12-08 08:59:28 字数 915 浏览 0 评论 0原文

我想知道是否可以在指定位置动态创建选项卡面板?

目前,我的选项卡是通过加载一些 json 动态创建的。我的 div 结构如下所示:

<div id="tabs">
  <ul id="tablist"></ul>
</div>

然后它会动态填充类似于下面的结构...

<div id="tabs">
  <ul id="tablist">
   <li><a href="#panel1">blah1</a></li>
   <li><a href="#panel2">blah2</a></li>
   <li><a href="#panel3">blah3</a></li>
  </ul>
  <div id="panel1">Some content...</div>
  <div id="panel2">Some content...</div>
  <div id="panel3">Some content...</div>
</div>

我想告诉 jQuery 在我选择的父 div 中创建面板 div,例如“#panels”:

<div id="tabs">
  <ul id="tablist"></ul>
</div>
<div id="panels"></div>

这可能吗?谢谢。

仅供参考,我没有使用通用的 ui 选项卡外观和样式。感觉,因此不受任何容器设计的束缚。

I'm wondering if it possible to dynamically create the tab panels in a specified location?

At the moment my tabs are dynamically created through loading some json. My div structure is like so:

<div id="tabs">
  <ul id="tablist"></ul>
</div>

It then populates the structure dynamically similar to below...

<div id="tabs">
  <ul id="tablist">
   <li><a href="#panel1">blah1</a></li>
   <li><a href="#panel2">blah2</a></li>
   <li><a href="#panel3">blah3</a></li>
  </ul>
  <div id="panel1">Some content...</div>
  <div id="panel2">Some content...</div>
  <div id="panel3">Some content...</div>
</div>

I would like to tell jQuery to create the panel divs in a parent div of my choice, Eg '#panels':

<div id="tabs">
  <ul id="tablist"></ul>
</div>
<div id="panels"></div>

Is this possible? Thanks.

FYI I'm not using the generic ui tab look & feel, so not bound by any container design.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自找没趣 2024-12-15 08:59:28

我想知道是否可以在指定位置动态创建选项卡面板?

不容易(我可以看到)。

如果您确实想要,您可以通过

  • 创建第二个无序列表、
  • 更改当前无序列表的样式以使其不显示、
  • 绑定事件来获得类似的行为,以便单击新列表中的任何选项卡都会触发“单击”事件在“真实”名单上。

或者,您可以采取“其他方式”并通过

  • 创建第二组面板来获得类似的行为,
  • 更改“真实”面板的样式以使其不显示,
  • 拦截“tabsselect”(和类似的事件)并触发新面板中相应的显示变化。

请注意,jQuery UI 选项卡 API 目前正在进行重新设计。有一个 pre-alpha 里程碑 可用,并要求他们发表评论。请求将此作为一项功能并看看他们怎么说当然不会有什么坏处。 (如果不出意外的话,他们可能有比上面更好的想法。)

I'm wondering if it possible to dynamically create the tab panels in a specified location?

Not easily (that I can see).

You could, if you really wanted, get a similar behavior by

  • creating a second unordered list,
  • altering the styling of your current unordered list so that it's not displayed,
  • binding events such that clicking any tab in your new list triggers a 'click' event on the "real" list.

Alternatively, you could go the "other way" and get similar behavior by

  • creating a second set of panels,
  • altering the styling of the "real" panels so that they're not displayed,
  • intercepting the "tabsselect" (and similar events) and triggering the corresponding display change in your new panels.

As a note, the jQuery UI tabs API is currently undergoing a redesign. There's a pre-alpha milestone available and they're requested comments. It certainly wouldn't hurt to request this as a feature and see what they say. (If nothing else, they may have a better idea than the above.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文