1

Web サイトのナビゲーション ツリーを作成しようとしていますが、動的な配置ができませんでした。問題は次のとおりです。内部 LI がクリックされるたびに内部 UL を開きたいのですが、クリックされた内部 UL のインデックスを取得できますが、そのインデックス変数をグローバルに使用することはできません。

  • リンクをクリックするたびにページがリロードされるので、Cookie を使用した解決策はありますか??

ここにhtmlがあります:

<ul id="menu">
          <li> <a href="#">Order Management</a>
              <ul id="test">
              <li><a href="#" class="even">orders</a></li>


      <li><a href="#" class="odd">Search Orders</a></li>

                <li><a href="#" class="even">Orderdetail</a></li>
          </ul>
        </li>


    <li> <a href="#">Discount Management</a>
          <ul>
            <li><a href="#" class="even">Subject</a></li>
            <li><a href="#" class="odd">Category</a></li>
            <li><a href="#" class="even">Publisher</a></li>
            <li><a href="#" class="odd">Author</a></li>
            <li><a href="#" class="even">Particular Book</a></li>
          </ul>
        </li>


        <li> <a href="#">Upload File</a>
          <ul>
            <li><a href="#" class="even">Upload excel file</a></li>
          </ul>
        </li>
        <li> <a href="#">Reports</a>
          <ul>

            <li><a href="#" class="even">data over view</a></li>
             <li><a href="#" class="odd">Out Of Stock Product</a></li>
              <li><a href="#" class="even">Invoice Report</a></li>
            <li><a href="#" class="odd">SerachInvoicDispacthed</a></li>

          </ul>
        </li>

        <li> <a href="#">Store Management</a>
          <ul>
            <li><a href="#" class="even">Currency</a></li>
            <li><a href="#" class="odd">Add Country</a></li>
          </ul>
        </li>


      </ul>

Jsは次のとおりです。

    function initMenu() {
                   $('#menu ul').hide();
    $('#menu li a').click(
        function() {
          var checkElement = $(this).next();

          if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
            return false;
            }
          if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
            $('#menu ul:visible').slideUp('normal');
            checkElement.slideDown('normal');
            return false;
            }
          }
        );
        var myIndex = 0;
                   var items = $('#menu ul').click(function() {
                   //e.preventDefault();
                   myIndex = items.index(this);
                   console.log('the index is:'+myIndex);
//here i got index in var myIndex
                    }
                   );
//but i can not access myIndex here , it keeps returning zero
$('#menu  ul:eq('+myIndex+')').show("slow");

      }
    $(document).ready(function() {initMenu();});

この質問のために、私のアカウントはすでにブロックされています。ここにフィドルがありますhttp://jsfiddle.net/Ekn2V/1/ 実際のリンクはありませんが、実際のリンクを使用すると、 struts.xml で定義されているようにページがリロードされるため、ページはここで js によって発生したすべてをリロードします見過ごされている場合は、Cookie またはその関連ソリューションのようなものを教えてください。私は Java SE 開発の経験があり、Web 開発の初心者です。助けていただければ幸いです、ありがとう。

4

1 に答える 1