首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类在动态页上单击时不停留在锚上。

类在动态页上单击时不停留在锚上。
EN

Stack Overflow用户
提问于 2014-01-30 14:18:00
回答 3查看 52关注 0票数 0

这里有一个动态页面http://www.intelligen.info/index.html,当从左侧的nav中选择锚点时,它将替换内容。类“current”应该添加到选定的锚上并保持在其上,但是它不能工作。选定的锚在选定时应该有一条线穿过它。我怎么才能把这事做好?

以下是代码:

代码语言:javascript
运行
复制
$(function() {

var newHash      = "",
    $mainContent = $("#main-content"),
    $pageWrap    = $("#page-wrap"),
    baseHeight   = 0,
    $el;

$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();

$("nav").delegate("a", "click", function() {
    window.location.hash = $(this).attr("href");
    return false;
});

$(window).bind('hashchange', function(){

    newHash = window.location.hash.substring(1);

    if (newHash) {
        $mainContent
            .find("#guts")
            .fadeOut(200, function() {
                $mainContent.hide().load(newHash + " #guts", function() {
                    $mainContent.fadeIn(200, function() {
                        $pageWrap.animate({
                            height: baseHeight + $mainContent.height() + "px"
                        });
                    });
                    $("nav a").removeClass("current");
                    $("nav a[href="+newHash+"]").addClass("current");
                });
            });
    };

});

$(window).trigger('hashchange');

});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-30 14:20:55

应该引用属性选择器的值,因此将其更改为:

代码语言:javascript
运行
复制
$("nav a[href='"+newHash+"']").addClass("current");

在那之后它应该能起作用。您可以使用 pseudo selector实现相同的视觉效果,这可能更方便。

票数 0
EN

Stack Overflow用户

发布于 2014-01-30 14:21:24

newHash的值包含一个.,因为它是page.html.是jQuery选择器中的一个特殊字符,因此有两个选项。转义它,或者用引号包装属性等于选择器的值。后者是两者中比较容易的。更改这一行:

代码语言:javascript
运行
复制
$("nav a[href="+newHash+"]").addClass("current");

至:

代码语言:javascript
运行
复制
$('nav a[href="'+newHash+'"]').addClass("current");
票数 0
EN

Stack Overflow用户

发布于 2014-01-30 14:27:03

您想要更改href或将类添加到"selected“(我猜是单击的)元素中?

代码语言:javascript
运行
复制
$('nav a').click(function() {
  $('nav a').removeClass('current');
  $(this).addClass('current');
}

这必须在hashchange之外,否则单击就触发hashchange

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21458918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档