Jquery一个切换元素的多个按钮

时间:2013-01-23 02:19:49

标签: jquery html css toggle

基本情况如下:

http://jsfiddle.net/thomascs/CfGYG/1/

我有一个iframe,点击不同的按钮时加载不同。但是所有这些按钮都在切换相同的iframe,但只有最顶层的按钮正在工作。

我还希望动画能够使iframe取消标记,然后在已经打开的情况下进行retoggle,但会点击一个新链接。

HTML:

<div id="wrapper">
    <div id="left">LINKSSSSS</div>
    <div id="menu"> 
        <span class="button" id="leftbutton">open left</span>
        <span class="button" id="rightbutton">open right1</span>
        <span class="button" id="rightbutton">open right2</span>
        <span class="button" id="rightbutton">open right3</span>
    </div>
    <div id="right">RECHTSSSS</div>
</div>

CSS:

    #menu {
    background:#eee;
    width:300px;
    height:400px;
    float:left;
}
#left {
    float:left;
    display:none;
}
#right {
    float:left;
    display:none;
}

JS:

$(document).ready(function () {
    $('#leftbutton').click(function () {
        $('#right').hide();
        $('#left').toggle();
    });
});
$(document).ready(function () {
    $('#rightbutton').click(function () {
        $('#left').hide();
        $('#right').toggle();
    });
});

!EDIT!

因此,已经解决了id而不是类选择器的问题。我还设法实现了retoggle动画。当我点击两次相同的链接时,我只需要取回切换功能。

现在:http://jsfiddle.net/thomascs/CfGYG/6/

2 个答案:

答案 0 :(得分:4)

属性id="" 唯一。使用class=""代替

Retoggling:

答案 1 :(得分:0)

看起来您的按钮没有触发,因为您使用的是ID而不是类。 ID是每页唯一的。这就是为什么只有第一个OPEN RIGHT按钮才会触发,而不是其他两个按钮。对于像反复使用的导航菜单项一样,你应该使用类名。

我已修改您的代码以使用&#34;右键按钮&#34;和&#34;左按钮&#34;作为类而不是IDS,现在它似乎正在按预期工作。

变化 <span class="button" id="rightbutton">open right1</span>

<span class="button rightbutton">open right1</span>

<span class="button" id="leftbutton">open left</span>

<span class="button leftbutton">open right1</span>

见下面的工作演示:

http://jsfiddle.net/bNVkG/

这具有淡化效果。我用fadeIn()和fadeOut()替换了toggle():

http://jsfiddle.net/HcRSm/