jQuery只附加一次

vjo*_*nov 2 jquery append

所以我有这个:

jQuery("document").ready(function($){

var nav = $('#nav');
var logo = '<img src="img/logo.png" />';

$(window).scroll(function () {
    if ($(this).scrollTop() > 136) {
        nav.addClass("nav-f");
        nav.append(logo);
    } else {
        nav.removeClass("nav-f");
        nav.remove(logo);
    }
});

});
Run Code Online (Sandbox Code Playgroud)

滚动时我正在尝试修复导航,这有效,但我也想在#nav div中添加一个带有徽标图像的标签,这也可以,但它会附加在每个滚动上,所以滚动时我会变得像100个图像的徽标.

如何才能使其仅追加一次并且当滚动次数超过136px时才被删除?

Abs*_*aos 6

只需使用布尔值,

jQuery("document").ready(function($){

    var nav = $('#nav');
    var logo = '<img id="lilLogo" src="img/logo.png" />';
    var visible = false;

    $(window).scroll(function () {
            if ($(this).scrollTop() > 136) {
                nav.addClass("nav-f");
                if(!visible) {
                    nav.append(logo);
                    visible = true;
                }
            } else {
                nav.removeClass("nav-f");
                if(visible)  {
                    $('#lilLogo').remove();
                    visible = false;
                }
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

小提琴

另一种方法是检查$('#lilLogoID').is(':visible'),然而这会搜索img并在每个事件上检查可见(这会很慢)