【问题标题】:Using jQuery UI tabs and jQuery UI selectmenu使用 jQuery UI 选项卡和 jQuery UI 选择菜单
【发布时间】:2015-01-26 21:56:38
【问题描述】:

我有两个选项卡,在每个选项卡中我都想有一些表格。我正在添加选择菜单,以及每个选项卡内的 jQuery UI。问题是第二个选项卡上的选择菜单不会显示。我相信这与选项卡的加载方式有关,但我不太确定如何解决。

这是 html 代码和小提琴http://jsfiddle.net/us8xbyyo/

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI tabs</title>
<link rel="stylesheet" href="./jQuery/jquery-ui.css">
<script src="./jQuery/external/jquery/jquery.js"></script>
<script src="./jQuery/jquery-ui.js"></script>
<script>
$(function() {
    $( "#tabs" ).tabs();
    $( ".mySelect" ).selectmenu();
});
</script>
</head>
<body>
<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Company</a></li>
        <li><a href="#tabs-2">Depto</a></li>
    </ul>
    <div id="tabs-2">
        <label for="company">Company </label>
        <select class="mySelect" id ="company">
            <option value="-1">Chose a company</option>
            <option value="1">Company 1</option>
            <option value="2">Company 2</option>
            <option value="3">Company 3</option>
        </select>   
    </div>
    <div id="tabs-1">
        <label for="depto">Depto</label>
        <select class="mySelect" id="depto" name="depto">
            <option value="-1">Chose a dpto</option>
            <option value="1">Dpto 1 </option>
            <option value="2">Dpto 2</option>
            <option value="3">Dpto 3</option>
        </select>   
    </div>
</div>
</body>
</html>

非常感谢

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-tabs jquery-ui-selectmenu


    【解决方案1】:

    您似乎可以通过检查每个下拉 div 的 id 名称的位置来解决此问题。

    您的第一个 div 的 id="tabs-2" 应该是 id="tabs-1"。 您的第二个 div 的 id="tabs-1" 应该是 id="tabs-2"。

    这样您的链接现在将链接到正确的 div。

    其次,我相信由于 HTML 中已经存在标签,它会自动呈现为下拉菜单,其中您的选项标记为与选项卡之间的内容相对应。因此,不需要 .selectmenu 的 jQuery 以及类名。

    <body>
    <div id="tabs">
    <ul>
        <li><a href="#tabs-1">Company</a></li>
        <li><a href="#tabs-2">Depto</a></li>
    </ul>
    <div id="tabs-1">
        <label for="company">Company </label>
        <select id="company">
            <option value="-1">Chose a company</option>
            <option value="1">Company 1</option>
            <option value="2">Company 2</option>
            <option value="3">Company 3</option>
        </select>   
    </div>
    <div id="tabs-2">
        <label for="depto">Depto</label>
        <select id="depto">
            <option value="-1">Chose a depto</option>
            <option value="1">Dpto 1 </option>
            <option value="2">Dpto 2</option>
            <option value="3">Dpto 3</option>
        </select>   
    </div>
    

    $(function() {
    $( "#tabs" ).tabs();
    });
    

    此代码似乎有效。

    【讨论】:

    • 感谢您的回答。我知道
    • 中的顺序已切换,但这不是问题,上面的示例只是更复杂代码的示例。您刚刚删除了允许显示选择的选择菜单,尽管这可以显示选择,但它们不是使用 jQuery UI 呈现的。
  • 我相信您可能需要加载 jquery API。仅调用 .selectmenu 不会显示任何内容。您将需要为该函数传递一些参数和属性,以便它执行任何重要的操作。希望这些信息能让你走上正轨。 api.jqueryui.com/selectmenu 记住,.selectmenu({ });自己不做任何事情。
  • 【解决方案2】:

    所以我遵循@dcook 的建议并查看了文档并决定使用特定宽度初始化selectmenu()。使用 Chrome 的工具,我能够验证第二个选项卡上的 selectmenu() 是否已应用,但宽度设置为 0,这很奇怪,因为应根据选择中最大字符串的长度自动设置宽度。

    干杯。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签