0

別のdivのリンクをクリックしたときに、jqueryを使用してフレーム内のコンテンツを表示/非表示にするWordPressサイトを引き継ぎました。これは、IE7を除くすべてのブラウザーで完全に機能します。IE7では、何も起こりません。何もありません。そして、それはエラーをスローしません。これが私が使っているコードです

HTML:

<div id="campaignCards" class="contentBody">
<?php $args = array( 
   'post_type' => 'home_promos', 
   'posts_per_page' => 8,
   'order' =>'ASC' );
     $postcount = 0;
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post(); ?>
     <a class="slideLink" href="<?php if(get_post_meta($post->ID,     
         'mcb2b_home_promos_link', true)) { echo get_post_meta($post->ID,   
         'mcb2b_home_promos_link', true); } ?>">
     <div class="campaign_card" id="card<?php echo $postcount; ?>">
       <?php the_content();?>
     </div>
     </a>
      <? $postcount++; endwhile; ?> 
</div>          
<div id="homebuttons">
<ul>
    <?php $args = array( 
    'post_type' => 'home_promos', 
    'posts_per_page' => 8,
    'order' =>'ASC' );
      $postcount = 0;
       $loop = new WP_Query( $args );
       while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <li class="campaignPicker">
       <a href="javascript:showonlyone('card<?php echo $postcount; ?>');">
            <?php if (has_post_thumbnail()) {the_post_thumbnail();} ?>
       </a>
    </li>
      <?php  $postcount++; endwhile; ?>
</ul>
</div>

JS

function showonlyone(thechosenone) {
      var campaign_card = document.getElementsByTagName("div");
            for(var x=0; x<campaign_card.length; x++) {
                  name = campaign_card[x].getAttribute("class");
                  if (name == 'campaign_card') {
                        if (campaign_card[x].id == thechosenone) {
                        campaign_card[x].style.display = 'block';
                  }
                  else {
                        campaign_card[x].style.display = 'none';
                  }
            }
      }
}

問題はあると思いますがvar campaign_card = document.getElementsByTagName("div");、IEでデバッグするためのjqueryに習熟していません。どんな助けでも大歓迎です。

ありがとう

4

2 に答える 2

1

さて、あなたのコードはjQueryをまったく使用していないようです。jqueryの機能を使用したい場合は、ここのチュートリアルを読むことをお勧めします。

とにかく、あなたの問題のためにあなたはこれを試してみたいです:

function showonlyone(thechosenone) {
  $(".campaign_card").hide();
  $("#" + thechosenone).show();
}
于 2013-02-19T20:40:15.693 に答える
0
function showonlyone(thechosenone) {
  $('div#' + thechoenone).css('display', 'block');
  $('div.campaign_card').css('display', 'none');
}

関数の代わりにこれを試してください。プロジェクトの一部としてjQueryライブラリが含まれていることを確認する必要があることに注意してください。

于 2013-02-19T20:43:51.240 に答える