jQuery - removeClass无法正常工作

时间:2013-04-21 16:36:30

标签: jquery colors styles removeclass

我不知道如何更改代码,removeClass函数可以完成他的工作。目前,这个功能不起作用(我想是这样)。最大的问题是:

当我点击菜单项“1”时,出现黑框,菜单项“1”文字颜色变为蓝色。可以合理地假设,当我点击菜单项“2”时,比第一个菜单项“1”颜色变为黑色(不是蓝色),而第二个菜单项“2”,颜色变为蓝色。然而,他们两个都是蓝调。

代码的一小部分:

$(document).ready(function () {
$('#icons').click(function () {
    $('#chat-drop,#chat-drop2').hide()
        if ($('#chat-drop').is(":visible")) {
            $('#chat-drop').hide()
        $('#rodyti').removeClass('active');
        } else {
            $('#chat-drop').show()
        $('#rodyti').addClass('active');
        }
    return false;
});

完整代码:http://jsfiddle.net/wW75v/9/

我将不胜感激任何帮助

2 个答案:

答案 0 :(得分:1)

只是一个建议,代替使用id,您可以使用class。它会减少你的代码,如:

发件人

<div id="icons">
    <div id="rodyti">1</div>
    <div id="chat-drop">Menu1</div>
</div>
<div id="icons2">
    <div id="rodyti2">2</div>
    <div id="chat-drop2">Menu2</div>
</div>

<div class="icons">
    <div class="rodyti">1</div>
    <div class="chat-drop">Menu1</div>
</div>
<div class="icons">
    <div class="rodyti">2</div>
    <div class="chat-drop">Menu2</div>
</div>

JS CODE FROM

$('#icons').click(function () {
    $('#chat-drop,#chat-drop2').hide()
    // Your code here..
    return false;
});


$('#icons2').click(function () {
    $('#chat-drop,#chat-drop2').hide()
    // Your code here..
    return false;
});

仅限于此

$('.icons').click(function () {
    $('.chat-drop').hide()
    // Your code here..
    return false;
});

答案 1 :(得分:0)

你的问题似乎是你在#chat-drop是(“:visible”)时正在执行removeClass(),但是如果因为你刚刚隐藏了#chat-drop而不会进入线。

您可以将removeClass()添加到rodyti和rodyti2,以便始终将其删除。但请注意,如果你在它上面触发hide(),则is(“:visible”)是没用的。