【问题标题】:How reload (refresh) styles of an element (using cufon font) using jquery如何使用 jquery 重新加载(刷新)元素的样式(使用 cufon 字体)
【发布时间】:2012-03-28 11:36:17
【问题描述】:

请看下面我设计的网站(来自模板):
http://noorjamali.soscharge.com
我的问题是单击每个菜单后的菜单颜色。
对于尝试单击关于我菜单的测试,您将看到主菜单仍然是白色的,您应该将鼠标悬停在它上面以获得结果并将其颜色变回灰色。
请不要测试其他菜单,因为我没有为它们添加 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 -> 但我该如何解决呢?

【问题讨论】:

  • 请正确大写。这将使您的问题更容易阅读。

标签: jquery cufon


【解决方案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

【讨论】:

    猜你喜欢
    • 2013-02-17
    • 2011-01-07
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    相关资源
    最近更新 更多