0

我不知道如何更改代码,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/

我将不胜感激

4

2 回答 2

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 代码来自

$('#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;
});
于 2013-04-21T17:25:33.403 回答
0

您的问题似乎是当#chat-drop is(":visible") 时您正在执行removeClass(),但如果因为您刚刚在上一行中隐藏了#chat-drop,它就不会进入其中。

您可以将 removeClass() 添加到 rodyti 和 rodyti2 以便始终删除它们。但是请注意,如果您在其上方触发 hide(),则 is(":visible") 将毫无用处。

于 2013-04-21T16:41:31.840 回答