0

コードを変更する方法がわかりません。 removeClass 関数が彼の仕事をすることができます。現時点では、この機能は機能していません (私はそう思います)。最大の問題はこれです:

メニュー項目「1」をクリックすると、黒いボックスが表示され、メニュー項目「1」のテキストの色が青色になります。メニュー項目「2」をクリックすると、最初のメニュー項目「1」の色が黒(青ではなく)になり、2番目のメニュー項目「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 を非表示にしたため、その中には入りません。

これらが常に削除されるように、rodyti と rodyti2 の両方に removeClass() を追加できます。ただし、 is(":visible") のすぐ上で hide() をトリガーすると、まったく役に立たないことに注意してください。

于 2013-04-21T16:41:31.840 に答える