如何使用jquery重新加载(刷新)元素的样式(使用cufon字体)

时间:2012-03-28 11:36:18

标签: jquery cufon

请参阅下面我设计的网站(来自模板):
http://noorjamali.soscharge.com
我的问题是点击每个菜单后的菜单颜色 测试点击关于我的菜单,你会看到HOME菜单仍然是白色的,你应该用鼠标悬停它以获得结果并将其颜色变回灰色。
请不要测试其他菜单,因为我没有为它们添加jquery代码 我的菜单代码如下:

        <div class="nav">
            <div class="nav_shadow">
                <ul class="menu">
                    <li id="item-464" class="current active"><a href="Default.aspx">HOME </a></li>
                    <li id="item-465"><a href="javascript:AboutMeClick();">ABOUT ME </a></li>
                    <li id="item-444"><a href="javascript:QuickProfileClick();">QUICK PROFILE </a></li>
                    <li id="item-207"><a href="javascript:CertificationsClick();">CERTIFICATIONS </a></li>
                    <li id="item-467"><a href="javascript:ProjectsClick();">PROJECTS </a></li>
                </ul>
            </div>
        </div>

和AboutMeClick()函数是这样的:

var $j = jQuery.noConflict();
       function AboutMeClick() {
            $j('#header .nav .nav_shadow .menu li').removeClass('current active');
            $j('#header .nav .nav_shadow .menu li#item-465').addClass('current active');

            if ($j('#header').css('top') != -522) {
                $j('#lveis-wrapper_3').animate({
                    opacity: 0.0
                }, 1200, function () {
                    // Animation complete.

                    $j('#header').animate({
                        top: -522
                    }, 1000, function () {
                        // Animation complete.
                        if ($j('#QuickProfile').css('dispay') != 'none') {
                            $j('#QuickProfile').slideUp(1500, function () { $j('#AboutMe').slideDown(1500); });
                        }
                        else if ($j('#Certifications').css('dispay') != 'none') {
                            $j('#Certifications').slideUp(1500, function () { $j('#AboutMe').slideDown(1500); });
                        }
                        else if ($j('#Projects').css('dispay') != 'none') {
                            $j('#Projects').slideUp(1500, function () { $j('#AboutMe').slideDown(1500); });
                        }
                    });

                });
            }
            else {
                if ($j('#QuickProfile').css('dispay') != 'none') {
                    $j('#QuickProfile').slideUp(1500, function () { $j('#AboutMe').slideDown(1500); });
                }
                else if ($j('#Certifications').css('dispay') != 'none') {
                    $j('#Certifications').slideUp(1500, function () { $j('#AboutMe').slideDown(1500); });
                }
                else if ($j('#Projects').css('dispay') != 'none') {
                    $j('#Projects').slideUp(1500, function () { $j('#AboutMe').slideDown(1500); });
                }
            }
        }

和该菜单的相关css是这样的:

ul.menu > li.active > a:link, ul.menu > li.active > a:visited
{
    color: rgb(255, 255, 255) !important;
}
ul.menu li a:hover, ul.menu li a:active, ul li a:focus
{
}

我对这个问题很困惑。
为什么这些jquery代码无法完成他们的工作:

    $j('#header .nav .nav_shadow .menu li').removeClass('current active');
    $j('#header .nav .nav_shadow .menu li#item-465').addClass('current active');

关于这个问题的冲突在哪里,我该如何解决? 另外我真的不知道将菜单颜色设置为灰色的地方在哪里!!
有没有办法使用jquery模拟悬停以获得结果?

感谢关注

修改
我知道问题是针对cufon-yui.js - &gt;但我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

您使用的是cufon字体,请尝试调用

Cufon.refresh();

就像

一样
$j('#header .nav .nav_shadow .menu li').removeClass('current active');
$j('#header .nav .nav_shadow .menu li#item-465').addClass('current active');
Cufon.refresh(); // Will refresh all cufon text
//Or
Cufon.refresh('#header .nav .nav_shadow .menu li'); // Will refresh only selected objects