简体   繁体   English

使用jQuery在wordpress中出现菜单系统问题

[英]Issue with a menu system in wordpress using jQuery

Hi there I have an issue that I hope someone can help me with. 嗨,我有一个问题,希望有人可以帮助我。 I have a sliding menu system set up in wordpress that works for all of the main pages. 我在wordpress中设置了一个滑动菜单系统,该系统适用于所有主页。 My issues is that when I click on the more button from the Blog page to go to the full post my menu stops working. 我的问题是,当我从“博客”页面单击“更多”按钮转到完整帖子时,我的菜单停止工作。

Here is the image with the working menu and address on the top and the broken menu and address on the bottom 这是图像,其中工作菜单和地址在顶部,破碎的菜单和地址在底部

http://dl.dropbox.com/u/10311145/screen.png http://dl.dropbox.com/u/10311145/screen.png

I know it is to do with the coding and I have tried everything that I can think of. 我知道这与编码有关,我已经尝试了所有我能想到的东西。 I need it to set a class of "selected" on the Blog li when it goes to the full post page. 当转到完整的帖子页面时,我需要它在Blog li上设置“ selected”类。

Code for function: 功能代码:

jQuery(document).ready(function () {

//transitions
//for more transition, goto http://gsgd.co.uk/sandbox/jquery/easing/
var style = 'easeOutExpo';

//Retrieve the selected item position and width
var default_left = Math.round(jQuery('#lava li.selected').offset().left - jQuery('#lava').offset().left);
var default_width = jQuery('#lava li.selected').width();

//Set the floating bar position and width
jQuery('#box').css({left: default_left});
jQuery('#box .head').css({width: default_width});

//if mouseover the menu item
jQuery('#lava li').hover(function () {

    //Get the position and width of the menu item
    left = Math.round(jQuery(this).offset().left - jQuery('#lava').offset().left);
    width = jQuery(this).width(); 
    jQuery('#debug').html(left);
    //Set the floating bar position, width and transition
    jQuery('#box').stop(false, true).animate({left: left},{duration:1000, easing: style});  
    jQuery('#box .head').stop(false, true).animate({width:width},{duration:1000, easing: style});   

    //if user click on the menu
}).click(function () {

    //reset the selected item
    jQuery('#lava li').removeClass('selected'); 

    //select the current item
    jQuery(this).addClass('selected');

});

//If the mouse leave the menu, reset the floating bar to the selected item
jQuery('#lava').mouseleave(function () {

    //Retrieve the selected item position and width
    default_left = Math.round(jQuery('#lava li.selected').offset().left - jQuery('#lava').offset().left);
    default_width = jQuery('#lava li.selected').width();

    //Set the floating bar position, width and transition
    jQuery('#box').stop(false, true).animate({left: default_left},{duration:1500, easing: style});  
    jQuery('#box .head').stop(false, true).animate({width:default_width},{duration:1500, easing: style});       

});

}); });

Code for the li list li清单的代码

<div id="lava">
                    <ul>
                        <!-- To show "selected" on the home page -->
                            <li<?php 
                                    if (is_page('Home')) 
                                    {
                                    echo " class=\"selected\"";
                                    }?>>
                                    <a href="<?php bloginfo('url') ?>">Home</a>
                            </li>

                            <!-- To show "selected" on the About Us Page  -->
                            <li<?php 
                                    if (is_page('about'))  
                                    { 
                                    echo " class=\"selected\"";
                                    }?>>
                                    <a href="<?php bloginfo('url') ?>/about/">About Us</a>
                            </li>

                            <!-- To show "selected" on the Portfolio Page -->
                            <li<?php
                                    if (is_page('portfolio'))
                                    {
                                    echo " class=\"selected\""; 
                                    }?>>
                                    <a href="<?php bloginfo('url') ?>/portfolio/">Portfolio</a>
                            </li>

                            <!-- To show "selected" on the Blog Page -->
                            <li<?php 
                                    if (is_home()) 
                                    { 
                                    echo " class=\"selected\"";
                                    }
                                    ?>>
                                    <a href="<?php bloginfo('url') ?>/blog/">Blog</a>
                            </li> 
                            </ul>

                    <div id="box"><div class="head"></div></div>

I was thinking along these lines to get it, but it didn't work. 我一直在按照这些思路进行思考,但是没有成功。

<li<?php 
                                    if (is_home()) 
                                    { 
                                    echo " class=\"selected\"";
                                    }
                                    else if(is_page('<?php the_title(); ?>/%postname%/')){
                                        echo " class=\"selected\"";
                                    }
                                    ?>>
                                    <a href="<?php bloginfo('url') ?>/blog/">Blog</a>
                            </li> 

Problem was solved by author: 问题由作者解决:

I had to use is_single() in my li if statement. 我必须在li if语句中使用is_single()。 All ok now 现在一切都好

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM