2009-08-15 11 views
0

Ich war glücklich, einige Code zusammen zu cobble, die mir eine gut aussehende Tabbed-Box auf meiner (WordPress) Seite - 2 Tabs; ein Feed und aktuelle Kommentare. Erst nach ein paar Tagen habe ich ein Problem bemerkt: Firefox zeigt 2 Registerkarten untereinander an, die jeweils die andere Registerkarte zeigen. IExplorer zeigt eine einzelne funktionale Registerkarte wie vorgesehen an.oops - eine Ghost-Registerkarte in Firefox

Konnte eine Art Seele einen Blick auf den Code für eine offensichtliche Glitch (?) Werfen - Ich behielt in der PHP-Vollständigkeit, aber wie die Feeds und Kommentare gut angezeigt, nehme ich an, dass ignoriert werden kann ... [ Zeigt das Problem (mit Firefox) an here]

<script> 
    function diarytabs(newtab,oldtab) { 
    if (document.getelementbyid) 
    { 
     document.getelementbyid(newtab).style.display = "inline"; 
     document.getelementbyid(oldtab).style.display = "none"; 
     return false; 
    } 
    else if (document.all) 
    { 
     document.all[oldtab].style.display = "none"; 
     document.all[newtab].style.display = "inline"; 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
    } 
</script> 

<div class="diary-tab" id="diary1"> 
    <ul class="tabs"> 
    <li class="each-tab" id="diary11">New Comments 
    <li id="diary12"><a onclick="return diarytabs('diary2','diary1')" href="#">Decanter News</a> 
    </ul> 
    <?php 
    $comments = $wpdb->get_results("SELECT comment_author, comment_author_url, comment_ID, comment_post_ID FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 6"); 
    $numcomments = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'"); 
    if ($comments || $numcomments) :?> 
    <ul class="tab-list"> 
    <?php 
    if ($comments) { 
     foreach ($comments as $comment) { 
     echo '<li>' . sprintf(__('%2$s'), get_comment_author_link(), '<a href="'. get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '</a>'); 
     edit_comment_link(__("Edit"), ' <small>(', ')</small>'); 
     echo '</li>'; 
     } 
    } 
    ?> 
    </ul> 
    <?php endif; ?> 

    &nbsp;&nbsp; 
    <?php if ($numcomments) : ?> 
    <strong><?php echo sprintf(__('Comments in moderation (%s)'), number_format($numcomments)); ?> &raquo;</strong> 
    <?php endif; ?> 
</div> 
<div class="diary-tab" id="diary2"> 
    <ul class="tabs"> 
    <li id="diary21"><a onclick="return diarytabs('diary1','diary2')" href="#">New Comments</a></li> 
    <li class="each-tab" id="diary22">Decanter News 
    </ul> 
    <?php 
    require_once (ABSPATH . WPINC . '/rss-functions.php'); 
    // here's where to insert the feed address 
    $rss = @fetch_rss('http://www.decanter.com/feeds/rss/news.xml'); 
    if (isset($rss->items) && 0 != count($rss->items)) { 
    ?> 
    <ul class="tab-list"> 
     <?php 
     // here's (6) where to set the number of headlines 
     $rss->items = array_slice($rss->items, 0, 6); 
     foreach ($rss->items as $item) { 
     ?> 
     <li> 
     <a href='<?php echo wp_filter_kses($item['link']); ?>'><?php echo wp_specialchars($item['title']); ?></a> 
     </li> 
     <?php } ?> 
    </ul> 
    <?php } ?> 
</div> 

Antwort

0

Javascript-Funktion Namen sind Groß-und Kleinschreibung.

document.getElementById nicht document.getelementbyid

alert(typeof document.getelementbyid); // undefined 
alert(typeof document.getElementById); // function 

// you want to use this: 
    if (document.getElementById) 
    { 
     document.getElementById(newtab).style.display = "inline"; 
     document.getElementById(oldtab).style.display = "none"; 
     return false; 
    } 
+0

Top-Tipp gnarf - vielen Dank! –