0

コードを編集して機能させてください。

最新バージョン用に編集。

これが私が持っているものです:

<body>
<!-- visibility toggle -->
<script type="text/javascript">
<!--
function toggle_visibility()
    {
       if(document.getElementById(window.event.srcElement.id+'menu').style.display=='block'){
            document.getElementById(window.event.srcElement.id+'menu').style.display='none';
        }
        else{ 
            document.getElementById(window.event.srcElement.id+'menu').style.display='block';
        }
    };
//-->
</script>

これが私のdivです(私が持っているものを正確に表示するように編集されています)

<ul class="lyrics"><h3>ALL LYRICS</h3>
    <?php while ( have_posts() ) : the_post(); ?>   
        <li ><a id="links" href="#" onclick="toggle_visibility();"><?php the_title(); ?></a>
            <div id="linksmenu"><?php the_content();?></div>
        </li>
    <?php endwhile; // End the loop. Whew. ?>
</ul>

何が起こるかは次のとおりです。クリックしたリンクに関係なく、最後の「the_content」に関連付けられたテキストのみが表示されます。

必要なものは次のとおりです。最初は、すべての「子」divが表示されていません。「タイトル1」リンクをクリックすると、「子テキスト1」が表示されます。「タイトル2」リンクをクリックすると、「子テキスト2」が表示され、「子テキスト1」が表示されなくなります。

これはWordPressブログに掲載されるため、Titledivの数が変更されます。子供は常に1人だけです。

前もって感謝します!

4

3 に答える 3

0

クリックした場所に関係なく最初のスイッチが切り替わる理由divは、ハードコードされたIDを使用しているためですfoo。リテラルの代わりにパスthisし、inside関数は、切り替えたいdivを見つけます(これは、渡されたパラメーターの最初の子になります)。toggle_visibility'foo'toggle_visibility

于 2012-06-28T15:04:23.013 に答える
0

これは、the_content()2回呼び出しているためです。私はあなたのファイルが次のように見えると仮定しています:

<?php get_header();
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<ul> 
<li class="main"><a href="#" title="Title 1"><?php the_title(); ?></a>   <div class="child"><?php the_content(); ?></div> </li> 
<li class="main"><a href="#" title="Title 2"><?php the_title(); ?></a>   <div class="child"><?php the_content(); ?></div> </li>  <ul> 
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

2つのループが必要ですが、コードを追加しないと詳細を提供できません。複数のループについて読んでください。

于 2012-06-28T13:58:47.887 に答える
0

パラメータを破棄し、イベントをトリガーする要素のIDを使用して、表示/非表示に設定するIDを作成します。

 function toggle_visibility()
        {
            if(document.getElementById(window.event.srcElement.id+'menu').style.display=='block'){
                document.getElementById(window.event.srcElement.id+'menu').style.display='none';
            }
            else{ 
                document.getElementById(window.event.srcElement.id+'menu').style.display='block';
            }
        };

また、表示したいものに常にid +'menu'などがある限り、関数を使用して表示できます。links(親にはIDがあり、子にはIDがあることに注意してくださいlinksmenu

<ul class="lyrics"><h3>ALL LYRICS</h3>
    <?php while ( have_posts() ) : the_post(); ?>   
    <li ><a id="links" href="#" onclick="toggle_visibility();"><?php the_title(); ?></a>
      <div id="linksmenu"><?php the_content();?></div>
    </li>
    <?php endwhile; // End the loop. Whew. ?>
</ul>
于 2012-06-28T15:09:32.267 に答える