首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery .prepend克隆错误

jquery .prepend克隆错误
EN

Stack Overflow用户
提问于 2013-04-14 07:22:47
回答 2查看 194关注 0票数 0

当屏幕小于480px,滚动大于80时,我试图向导航栏添加一个项目。这个项目的多个副本被插入到我的main-nav中。有没有人能帮我解释一下为什么会这样?你可以通过here来看看发生了什么。

代码语言:javascript
复制
$(function () {
    var $window = $(window);
    var $width = $(window).width();

    function windowWidth() {
        if ($width < 480) {
            function top() {
                var $top = $window.scrollTop();
                if ($top < 80) {
                    $(".main-nav").css({
                        'position': '',
                        'width': '99.5%'
                    });
                    $(".thick-line-header").css("display", "");
                } else {
                    var $homeTab = $('<li class="home"><a href="#top" >test</a></li>');
                    $(".main-nav li").css({
                        'position': 'fixed',
                        'width': '100%',
                        'top': '0',
                        'left': '0',
                        'margin-top': '0'
                    });
                    $("#main-nav").prepend($homeTab);
                    $(".thick-line-header").css("display", "none");
                }
            };
            $(window).scroll(top);
        }
    };
    windowWidth();
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-14 07:29:25

我试着重现你的错误,但我没有机会,也许我遗漏了什么,我猜你需要添加一个标记,无论数据以前是否被添加过,因为你的条件不止一次为真,当你滚动的时候

代码语言:javascript
复制
var added = false; 
$(function() {
    var $window = $(window);
    var $width = $(window).width();
    function windowWidth() {
        if ( $width< 480 ) {
            function top() {
                var $top = $window.scrollTop();
                if( $top < 80 ) {
                   $(".main-nav").css({
                      'position': '',
                      'width': '99.5%'
                   }); 
                   $(".thick-line-header").css("display",""); 
                }
                else {
                   var $homeTab = $('<li class="home"><a href="#top" >test</a></li>');
                   $(".main-nav li").css({
                      'position': 'fixed',
                      'width': '100%', 
                      'top':'0', 
                      'left':'0', 
                      'margin-top':'0'
                   });
                   if(!added) {
                      $("#main-nav").prepend($homeTab);
                      added = true; 
                   }
                   $(".thick-line-header").css("display","none");    
                }
             };
             $(window).scroll(top);
          }
       };
       windowWidth();
    });

我希望这能有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2013-04-14 07:41:52

你给了一个位置:固定在列表项上。您需要在容器上设置'fixed‘选项。例如:

代码语言:javascript
复制
$(".main-nav").css({'position': 'fixed', 'width': '100%', 'top':'0', 'left':'0', 'margin-top':'0'});

而不是

代码语言:javascript
复制
$(".main-nav li").css({'position': 'fixed', 'width': '100%', 'top':'0', 'left':'0', 'margin-top':'0'});

希望这能有所帮助!

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

https://stackoverflow.com/questions/15994026

复制
相关文章

相似问题

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