从一个链接显示具有相同ID的两个div的内容

时间:2014-01-13 00:54:49

标签: jquery jquery-ui user-interface tabs

我有使用jQuery标签的网站。我有一个带有基本描述的侧边栏。下面是一张图片,下面是一个导航到标签的列表。

我有这样的话,如果你点击链接,比如标签2,侧边栏中的图像会改变以匹配标签2的内容,依此类推。

这个工作正常了大约一个月,我突然回到了项目中,它不再支持调用两个ID。我知道使用两个ID是不正确的,但它确实有效。

想知道是否有人能说清楚。

<div id="container">
    <div id="tabs">
        <div class="sidebar">
            <p>Basic description</p>
            <div id="p1"><img src="product1.jpg"/></div>
            <div id="p1"><img src="product2.jpg"/></div>
            <div id="p1"><img src="product3.jpg"/></div>
            <ul>
                <li><a href="#p1"><h5>Product 1</h5></a></li>
                <li><a href="#p2"><h5>Product 2</h5></a></li>
                <li><a href="#p3"><h5>Product 3</h5></a></li>
            </ul>
        </div><!--close sidebar-->

        <div class="content">
            <div id="p1">
                <p>Product 1 info</p>
            </div> <!-- close p1 -->
            <div id="p2">
                <p>Product 2 info</p>
            </div> <!-- close p2 -->
           <div id="p3">
                <p>Product 3 info</p>
            </div> <!-- close p3 -->
        </div><!-- close content -->
    </div><!-- close tabs -->
</div><!-- close container -->

1 个答案:

答案 0 :(得分:5)

这是正确的方法。您将使用jQueryUI的内置回调功能。

http://jsfiddle.net/isherwood/73B4f

<style>
.sidebar-img {
    display: none;
}
</style>

<div id="container">
    <div id="tabs">
        <div class="sidebar">
            <p>Basic description</p>
            <div class="sidebar-img" style="display: block;">Image 1</div>
            <div class="sidebar-img">Image 2</div>
            <div class="sidebar-img">Image 3</div>

            ...
        </div><!-- close content -->
    </div><!-- close tabs -->
</div><!-- close container -->

<script>
$('#tabs').tabs({
    activate: function (event, ui) {
        $('.sidebar-img').hide();
        $('.sidebar-img').eq( ui.newTab.index() ).show();
    }
});
</script>

http://api.jqueryui.com/tabs/#event-activate