質問

編集: OK、次の行:

$( <?php echo("'#".$_GET['item']."'")  ?> ).parent().show();

もちろん、正しい場所でメニューを開いたままにしてください。私はこれが今まで働いたとは思わない(他のpplsコードで作業するのが嫌いだと思った)。

それから私の現在の問題は、そのアイテムid = 001を使用して<ul class="myul">のすぐ上の<li id="001" >にアクセスする方法ですか?

こんにちは

私は、今失われたプログラマーによって残されたコードを修正しようとしています。機能しますが、機能がありません。メニュー項目が選択されたときに、正しい場所で開かれたままになりません。

Jquery:

$.swapImage(".swapImage");                                  
            $( <?php echo("'#".$_GET['item']."'")  ?> ).parent().show();
            $('.myul').hide();              
            $('.slide_ul li:not(:first-child)').hide();     
            $('.hideMe').click(function(){ 
                $(this).next('ul').slideToggle('fast').siblings('ul:visible').slideUp('fast');
            });                             
            $('.myul a').click(function(e){
                var url = $(this).attr('href');
                var index = url.indexOf('=');
                var substr = url.slice(index+1);                    
                $('#productContainer >div').hide();
                $('#productContainer').load("products/"+substr+"/product.html", function(){
                    $(this).fadeIn('slow'); 
                    var i = 0;
                    $('.slide_ul li:not(:first-child)').hide();                                                                             
                });                 
            });

HTML:

    <!-- Right Navigation -->
                        <div id="rightNav">
                            <div id="navMenu">
                                <h2 id="navMenuheader">Catalogue</h1>
                                <h3 class="hideMe">Widgets</h3>
                                <ul class="myul">
                                    <h4 class="hideMe">Widget Coins</h2>
                                    <ul class="myul">
                                        <li id="001" >
                                             <a href="products.php?item=001">The South African Widget</a>
                                          </li>

メニュークリックの結果、ページの中央にある黒いdivにContentが挿入されます。これが発生するたびに$(document).ready(function(){が発生しますか?そうしないと、すべてのメニュー位置が更新される理由がわかりません。

メニューの場所を特定し、開いたままにするために、さらにコードが必要だと思います。机の上にアリがいます。

役に立ちましたか?

解決 2

メニューの関連するセクションがすべて非表示になった後、再度開くには、jqueryを追加する必要がありました。そのため、行$('.myul').hide()の直後に、URLクエリ(products.php?item = 001)に基づいてメニューセクションを再度開きます:

var item =  <?php echo("'".$_GET['item']."'")  ?>;

                if (item != '')             
                {
                    item = "li#" + item;            
                    $(item).parent().show();
                    $(item).parent().parent().show();
                }

他のヒント

上で悪い終了タグのように見えます

<h4 class="hideMe">Widget Coins</h2>

クリックされたときの主な問題

$(this).next('ul')

h4の兄弟ではなく子であるため、ulが見つかりません
に変更します

<h4 class="hideMe">Widget Coins</h4>

それがうまく機能するようになりましたが、それがあなたが探していたすべてかどうかはわかりません

$( <?php echo("'ul:has(#".$_GET['item'].")'");  ?> ).show();

指定されたidを持つ子孫を持つすべてのulを開きます
.parent()を使用しただけでは、表示されるトップulが取得されませんでした

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top