首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.prepend if语句添加文本

使用.prepend if语句添加文本
EN

Stack Overflow用户
提问于 2015-07-23 18:46:28
回答 2查看 52关注 0票数 0

我正在用jQuery制作一个响应式导航栏:

HTML:

代码语言:javascript
复制
<div class="head-wrap">
     <h1>Header Content</h1>

    <ul class="horiz-nav">
        <li><a href="#">Nav bar link</a>
        </li>
        <li><a href="#">Nav bar link</a>
        </li>
        <li><a href="#">Nav bar link</a>
        </li>
    </ul>
</div>

联署材料:

代码语言:javascript
复制
$(function(){
    $(document).scroll(function(){
        if($(this).scrollTop() > 90){
            var header = $(".horiz-nav");
            $(".horiz-nav").stop().css({'position' : 'fixed'}).animate({ 'top' : '0px'}, 0);
            header.prepend("<li>Header Content</li>");
        } else {
            $(".horiz-nav").stop().css('position', 'absolute').stop().animate({'top' : '38px'}, 100);
        }
    });

这主要是因为它应该:它使导航条开关位置时,用户滚动。但是我想做的是,当页面被滚动时,使导航栏上方的h1成为导航条的一部分。然而,随着页面的滚动,这段代码生成了几十个h1副本(虽然更小)。如何在其他导航栏项之前只显示一个?小提琴

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-23 18:51:03

只有在元素不存在的情况下才进行准备

if(!$('#element').length) {...}

代码语言:javascript
复制
$(function(){
    $(document).scroll(function(){
        if($(this).scrollTop() > 90){
            var header = $(".horiz-nav");
            $(".horiz-nav").stop().css({'position' : 'fixed'}).animate({ 'top' : '0px'}, 0);
            if(!$('#added').length) {
              header.prepend("<li id='added'>Header Content</li>");
            }
        } else {
            $(".horiz-nav").stop().css('position', 'absolute').stop().animate({'top' : '38px'}, 100);
        }
    });
票数 3
EN

Stack Overflow用户

发布于 2015-07-23 18:55:50

您可以在您的if中使用if,在您的其他地方使用header.find('h1').prependTo('.head-wrap');。他们都只会成功一次作为第二次,这个元素将不再存在。

代码语言:javascript
复制
$(document).scroll(function () {
    var header = $(".horiz-nav");
    if ($(this).scrollTop() > 90) {

        $(".horiz-nav").stop().css({
            'position': 'fixed'
        }).animate({
            'top': '0px'
        }, 0);
        $('.head-wrap > h1').prependTo(header);
    } else {
        $(".horiz-nav").stop().css('position', 'absolute').stop().animate({
            'top': '38px'
        }, 100);
        header.find('h1').prependTo('.head-wrap');
    }
});

请参阅小提琴

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

https://stackoverflow.com/questions/31595677

复制
相关文章

相似问题

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