jquery階層メニューデザイン
-
03-07-2019 - |
質問
編集: 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が取得されませんでした