1

ul親( )要素の子要素()のクラス名を置き換えたいli.filetabs。私がやったことは非常に正しいように見えますが、クラスが置き換えられていないため、明らかにそうではありません。

JSFIDDLE で更新Jsfiddleに関する注意:一度クリックするとすべて機能し、同じナビゲーションタブをもう一度クリックすると、ドロップダウンが消えて再表示されます...

var aFileTabs = $('.filetabs');
var curTab = $(this);
// this seems to give correct output 
var prevCurTab = $('.cTabActive').parent(); //(i.e. *jQuery(li.filetabs)*  )
// the following line is the problem line; Ive tried replacing the children with
// $('ul',prevCurTab)... but that doesnt work either... I must be doing something
// very basic wrong
$(prevCurTab).children().removeClass('cTabActive').addClass('cPrevTabActive');
$('ul', curTab).addClass ('cTabActive');

編集:お詫びします。HTMLを忘れてしまいました。かなり多くの機能があるため、最初の2つのナビゲーションボタンhtmlのみが表示されて意味がわかります。

    <div id="filemenu">                     <!-- right tabs menu -->
        <ul id="fm_ul">
            <li class="filetabs">File
                <ul>
                    <li class="m_items"><a href="#"><span class="aHeading">New</span><span class="shortcutK">Ctrl-U</span></a></li>
                    <li class="m_items"><a href="#"><span class="aHeading">Open</span><span class="shortcutK">Ctrl-Z</span></a></li>
                    <li class="m_items"><a href="#"><span class="aHeading">Save</span><span class="shortcutK">Ctrl-T</span></a></li>
                    <li class="m_items"><a href="#"><span class="aHeading">Exit</span><span class="shortcutK">Ctrl-Q</span></a></li>
                </ul></li><li class="filetabs">Edit
<ul>
                    <li class="m_items"><a href="#"><span class="aHeading">Undo</span><span class="shortcutK">Ctrl-M</span></a></li>
                    <li class="m_items"><a href="#"><span class="aHeading">Redo</span><span class="shortcutK">Ctrl-S</span></a></li>
                    <li class="m_items"><a href="#"><span class="aHeading">Zoom In</span><span class="shortcutK">Ctrl-R</span></a></li>
                    <li class="m_items"><a href="#"><span class="aHeading">Zoom Out</span><span class="shortcutK">Ctrl-Q</span></a></li>

                </ul></li>
4

2 に答える 2

0

これがまったくわからないのですが、試してみてください。

$('.filetabs').on('click', function() {
    var aFileTabs = $('.filetabs'),
        curTab = $(this),
        prevCurTab = $('.cTabActive').parent();

    $('.cTabActive').removeClass('cTabActive').addClass('cPrevTabActive');
    $('ul', curTab).removeClass('cPrevTabActive').addClass ('cTabActive');
});
​

フィドル

于 2012-05-15T17:52:29.530 に答える
0

この別の投稿で回答しました。ダニエルに感謝します。

Jquery-シンプルなドロップダウンメニューでクラスを操作する

于 2012-05-26T07:51:17.813 に答える