javascript - show() 函数似乎没有按预期工作

标签 javascript jquery html css user-interface

我正在尝试创建一个网页,左侧是菜单,右侧是内容区域。下面的模型图片给你一个想法:

enter image description here

我正在使用 jQuery UI 来尝试完成此操作。目标是根据左侧选择的菜单项设置右侧的内容区域。该区域将始终是选项卡式布局,但对于从左侧菜单中选择的每个元素,选项卡的内容和数量将有所不同。最终,我想将其集成到 ASP.NET MVC 5 应用程序中,以包含用户授权和 Angular 色,这些 Angular 色会影响基于登录用户可见的菜单项和选项卡。但是现在,我只是想根据我在左侧菜单上单击的内容来显示选项卡菜单,并在单击一个特定元素时专门显示它。对于其他人,它会再次隐藏它(我还没有尝试实现重新隐藏,这不是这个问题的一部分;我只是想让初始的 show() 工作)。

所以现在我的方法是隐藏页面上的选项卡准备好,然后使用函数在单击时显示它,使用 jQuery show() 函数。但是,这不起作用(在 firefox 和 IE 中试过)。

我的尝试是:https://jsfiddle.net/3mo28z1t/5/

在 fiddle 的 javascript 部分,如果将​​“隐藏”更改为“显示”

$("#tabsuseradmin").hide();

如果您想在尝试解决问题之前了解布局,您将看到选项卡菜单。

具体来说,我想要单击“左侧菜单项 3”以显示选项卡的操作。

谢谢。

最佳答案

我清理了您的 fiddle ,以便您的脚本/CSS 位于外部资源中。您必须首先定义目标,然后使用目标调用函数 - 您没有针对各个选项卡(我也没有为您完成此操作,我只是指出来)您也不能使用 show as一个函数名,作为它的保留。

我所做的是在 #leftmenu>li 上创建一个 toggle - 请参阅 fiddle

$(function() {
   $("#tabsuseradmin").tabs();
   $("#leftmenu").menu();
 });

$('#leftmenu>li').on('click', function(){
  $("#tabsuseradmin").toggle();
});

 $(function showTab(target) {
   document.getElementById(target).show();
 });
 
 $(function hideTab(target) {
   document.getElementById(target).hide();
 });
#leftmenu {
  display: inline-block;
}

#tabsuseradmin {
  display: inline-block;
  margin-right: 10px;
}
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<body>

    <ul id="leftmenu">
      <li>Left menu item 1</li>
      <li>Left menu item 2</li>
      <li>Left menu item 3</li>
      <li>Left menu item 4</li>
    </ul>

    <div id="tabsuseradmin">
      <ul>
        <li><a href="#tabs-1">Tab first</a></li>
        <li><a href="#tabs-2">Tab second</a></li>
        <li><a href="#tabs-3">Tab third</a></li>
      </ul>
      <div id="tabs-1">
        <p>Tab 1</p>
      </div>
      <div id="tabs-2">
        <p>Tab 2</p>
      </div>
      <div id="tabs-3">
        <p>Tab 3</p>
      </div>
    </div>


  </body>

关于javascript - show() 函数似乎没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37735498/

相关文章:

javascript - vue.js方法有什么区别

javascript - 在输入类型数字中使用箭头时如何防止垃圾邮件 ajax 调用

javascript - 私有(private)JS函数,这有什么问题吗?

javascript - 如何在 javascript 或 jquery 中将值与逗号分隔值进行比较

html - 将 div 左中右对齐与物化时的 block 行为

javascript - 使用 Facebook 分享按钮时出现错误的缩略图

javascript - jqGrid:每行一个单选按钮

Javascript:时间和信息拆分

javascript - 当文本区域为空时如何禁用链接?

javascript - 让 HTML 表单使用 JSON API