jquery在两个不同按钮的类之间切换

时间:2013-05-24 03:46:43

标签: javascript jquery

我一直无法使用按钮,我正试图让自己的头脑。

基本上我有两个按钮。 按钮#1位于侧栏上,有两种状态,具有以下样式

.Bt, .BtT {
height: 129px;
cursor: pointer;
background: url('../images/sideBtns.png') no-repeat;  
}

.BtT{
background-position: 0 -129px;
}

然后在我的HTML <div id="closeRefs" class="Bt">中(这是旁边的那个)

是第二个
<a class="openRef" ...> ... </a>

然后我的javaScript如下

    $("#closeRefs").click(function () {//SIDE BUTTON
        $(".Bt").toggleClass('BtT');
    });

    $(".openRef").click(function () {//REFERENCES OPEN
        $(".Bt").removeClass('Bt').addClass('BtT');
    });

这可以如下工作: 侧面按钮在background-position之间切换,参考按钮也能够打开它被点击的侧面按钮(如果侧面按钮没有打开)。当我点击参考按钮时,问题仍然存在,它会打开侧面按钮,然后当我单击侧面按钮时它不会自动关闭。

2 个答案:

答案 0 :(得分:1)

可能是因为您在点击Bt时删除了课程openRef。因此,当您点击closeRefs时,没有类Bt

的元素
var $bt = $(".Bt");
$("#closeRefs").click(function () {//SIDE BUTTON
    $bt.toggleClass('BtT');
});

$(".openRef").click(function () {//REFERENCES OPEN
    $bt.removeClass('Bt').addClass('BtT');
});

答案 1 :(得分:0)

如果我理解正确,这就是你要做的事情: http://jsfiddle.net/KQ7EQ/

Arun说的是正确的,你正在删除Bt离开目标div而没有任何回复。此外,您没有设置“重置位置”。

例如: 当您删除BlT时,没有任何迹象表明背景会回到其初始位置。

如果你添加:

.Bt{
    background-position: 0 0;
}

将告诉背景图像重置其位置。

此外,如果您希望BlBlT处于活动状态时消失,反之亦然,您应该使用:

$bt.toggleClass('Bt').toggleClass('BlT');

由于Bt从一开始就存在,因此当您添加BlT时会将其删除,而当您再次调用它时则相反。