【问题标题】:jQuery Tabs: doesn't work (doesn't change page)jQuery 选项卡:不起作用(不更改页面)
【发布时间】:2014-01-24 19:54:43
【问题描述】:

我正在尝试使用 jQuery 选项卡,但我无法让它们工作。

我有这个 HTML 代码:

<!-- / NAVIGATORE / -->
<div class="navigator windowtemplate movingwindow">
  <div class="top">Navigatore <a href="#"><span class="closebutton closedialog"></span></a></div>

    <!-- Menu -->
  <div class="navi_menu">
    <a href="#navi-public"><span class="selected">Stanza Pubbliche</span></a><a href="#navi-private"><span>Stanze Private</span></a><a href="#navi-me"><span>Mie</span></a><a href="#navi-search"><span>Cerca</span></a>
  </div>

  <div class="body">
     <!-- Stanze Pubbliche -->
     <div class="public" id="navi-public">
       <div class="list scrollbar">
         <ul>
         <a href="#"><li>Stanza scema <span class="usersinroom red">50</span></li></a>
       </ul>
       </div>
     </div>

     <!-- Stanze Private -->
     <div class="private" id="navi-private">
       <div class="list scrollbar">
         <ul>
         <a href="#"><li>Stanza scema <span class="usersinroom red">50</span></li></a>
         <a href="#"><li>Stanza ancora più scema <span class="usersinroom orange">47</span></li></a>
       </ul>
       </div>
     </div>

     <!-- Mie stanze -->
     <div class="me" id="navi-me">
       <div class="list scrollbar">
         <ul>
         <a href="#"><li>Stanza scema <span class="usersinroom red">50</span></li></a>
         <a href="#"><li>Stanza ancora più scema <span class="usersinroom orange">47</span></li></a>
         <a href="#"><li>Stanza scema <span class="usersinroom orange">40</span></li></a>
       </ul>
       </div>
     </div>

     <!-- Cerca -->
     <div class="search" id="navi-search">
       <div class="list scrollbar">
         <ul>
         <a href="#"><li>Stanza scema <span class="usersinroom red">50</span></li></a>
         <a href="#"><li>Stanza ancora più scema <span class="usersinroom orange">47</span></li></a>
         <a href="#"><li>Stanza scema <span class="usersinroom orange">40</span></li></a>
         <a href="#"><li>Stanza ancora più scema <span class="usersinroom yellow">35</span></li></a>
       </ul>
       </div>
     </div>
  </div>

  <div class="bottom"></div>

</div>

还有这个 jQuery 脚本:

<script>
$(function() {
    // setup ul.tabs to work as tabs for each div directly under div.panes
    $("span.navi_menu").tabs("div.body > div");
});
</script>

但这似乎不起作用,我错在哪里? :(

(对不起,如果这会是一件愚蠢的事情,但我是 jQuery 的新手,所以我还不太了解这种语言)。

【问题讨论】:

标签: javascript jquery jquery-ui jquery-ui-tabs


【解决方案1】:

您的选择器正在寻找span,而您的navi_menu 元素是div。此外,不要在 tabs 方法中使用选择器,JQuery-UI 插件需要方法名称。你的 JavaScript 应该是:

 $("span.navi_menu").tabs();

而且您的 HTML 存在一些问题。您需要确保您的结构与 JQuery-UI 选项卡所期望的非常相似。这意味着将标签包装在&lt;li&gt; 标签中,并将它们包装在&lt;ul&gt; 标签中。按照此处的文档进行操作:http://api.jqueryui.com/tabs/

这是一个示例模板,其中包含您包含的一些 HTML,您应该可以从那里重新插入您的 HTML:Demonstration

【讨论】:

  • 我刚刚尝试过:$("div.navi_menu").tabs("div.body > div");但什么都没有,我收到此错误:未捕获的错误:无法在初始化之前调用选项卡上的方法;试图调用方法 'div.body > div'
  • 不要在标签插件调用中使用选择器。这就是 JQuery-ui 允许人们访问插件的公共功能的方式。您的 HTML 也有一些问题。我将在答案中添加一个基本模板,以便您可以重新添加所有 HTML。
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 2012-02-19
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多