0

我一直在努力解决一个按钮问题。

基本上我有两个按钮。按钮 #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,参考按钮也能够打开被点击的侧边按钮(如果侧边按钮未打开)。当我单击参考按钮时问题仍然存在,它会打开侧面按钮,然后当我单击侧面按钮时它不会自行关闭。

4

2 回答 2

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');
});
于 2013-05-24T03:53:24.260 回答
0

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

Arun 说的是正确的,您正在删除Bt目标 div,没有任何可返回的内容。此外,您没有设置“重置位置”。

例如:当您删除时BlT,没有任何东西告诉背景回到它的初始位置。

如果添加:

.Bt{
    background-position: 0 0;
}

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

此外,如果您想在活动Bl时离开,BlT反之亦然,您应该使用:

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

因为Bt从一开始就存在,所以当你添加它时它会被删除,当你BlT再次调用它时会相反。

于 2013-05-24T04:32:07.910 回答