使用jQuery UI选项卡和jQuery UI selectmenu

时间:2015-01-26 21:56:38

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

我有两个标签,每个标签里面我想要一些表格。我也在每个标签页面的jQuery UI中添加了selectmenu。问题是第二个选项卡上的选择菜单不会显示。我认为这与标签的加载方式有关,但我不太清楚如何解决它。

这里是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>

非常感谢

2 个答案:

答案 0 :(得分:0)

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

你的第一个div有id =&#34; tabs-2&#34;它应该是id =&#34; tabs-1&#34;。 你的第二个div有id =&#34; tabs-1&#34;它应该是id =&#34; tabs-2&#34;。

这样您的链接现在就会链接到正确的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();
});

此代码似乎有效。

答案 1 :(得分:0)

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

干杯。