我试图在屏幕为< 480px并且滚动大于80时将项目添加到我的导航栏中。该项目的多个副本正被插入到我的main-nav中。有人能帮助我理解为什么会发生这种情况吗?你可以通过here看到发生了什么。jquery.prepend克隆错误
$(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();
});
这是有道理的,因为每当有人滚动时该函数触发,该元素将继续添加到它,除非我停下来编程。我试图使用你介绍的if(!add)部分,但firefox不喜欢它。我一直在我的控制台中收到这个错误(添加没有定义) –
请务必在document.ready外面声明它 – Sedz
好的,我不再让控制台在每次滚动时都会感到不适,但它似乎并未实际上预先考虑元素。 –