0

クリック可能なナビゲーション バーを作成しようとしています。on:hover では何も起こらないという点で機能しますが、前のタブを閉じている間にユーザーがクリックしたタブを循環して開く方法がわかりません。現在、同じタブで動作し、表示と非表示を切り替えliますが、別のタブでは競合します。どんな助けでも素晴らしいでしょう。

var $main_menu = $('.catLevel');

$main_menu.find('li').click(function(event) {

    var clicker = $(this).data('clicker');

    if (clicker) {
        //Odd number of clicks
        console.log('Clicker .hide');

        $(this).find('.navWrap').hide();

    } else {
        //Even number of clicks
        console.log('Clicker .show');

        $(this).find('.navWrap').show();

    }
    $(this).data("clicker", !clicker);
});
4

2 に答える 2

0

このようなものですか?

var items = $('.catLevel').find('li');
items.click(function() {
  var clicked = $(this).find('.navWrap');
  clicked.show();
  items.find('.navWrap').not(clicked).hide();
});

私はテストするための動作するDOMを持っていませんが、それはあなたが探しているものかもしれません.

于 2013-07-29T15:53:04.537 に答える
0

やりたいことは、それらをすべて非表示にしてから、クリックされたものだけを表示することです. これを少し調整したいかもしれませんが、次のようなものがうまくいくはずです:

var $main_menu = $('.catLevel'),
    $menu_kids = $main_menu.find('li');

$menu_kids.on("click", function(e) {
    e.preventDefault();
    var $this = $(this),
        clicker = $(this).data('clicker');

    $menu_kids.hide(); //This hides all of them

    $this.show(); //Only show the one that was clicked. You should select the DIV with the content instead of $this.

    $this.data("clicker", !clicker);
});
于 2013-07-29T15:53:19.613 に答える