jquery.prepend克隆错误
当屏幕<480px且滚动>80时,我试图将一个项目添加到导航栏。此项目的多个副本正在插入我的主导航。有人能帮我理解为什么会这样吗?你可以通过去看发生了什么jquery.prepend克隆错误,jquery,prepend,cloning,Jquery,Prepend,Cloning,当屏幕80时,我试图将一个项目添加到导航栏。此项目的多个副本正在插入我的主导航。有人能帮我理解为什么会这样吗?你可以通过去看发生了什么 $(函数(){ 变量$window=$(window); var$width=$(window.width(); 函数windowWidth(){ 如果($width
$(函数(){
变量$window=$(window);
var$width=$(window.width();
函数windowWidth(){
如果($width<480){
函数top(){
var$top=$window.scrollTop();
如果($top<80){
$(“.main nav”).css({
“位置”:“,
“宽度”:“99.5%”
});
$(“.粗线标题”).css(“显示”,“粗线标题”);
}否则{
var$homeTab=$(');
$(“.main nav li”).css({
'位置':'固定',
“宽度”:“100%”,
“顶部”:“0”,
“左”:“0”,
“页边距顶部”:“0”
});
$(“#主导航”).prepend($homeTab);
$(“.粗行标题”).css(“显示”、“无”);
}
};
$(窗口)。滚动(顶部);
}
};
窗宽();
});
我试图重现你的错误,但没有机会,也许我遗漏了什么
不管怎样,我想你需要添加一个标志来判断数据是否在之前添加过,因为你的条件不止一次是真的,而且在你滚动的时候
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();
});
var added=false;
$(函数(){
变量$window=$(window);
var$width=$(window.width();
函数windowWidth(){
如果($width<480){
函数top(){
var$top=$window.scrollTop();
如果($top<80){
$(“.main nav”).css({
“位置”:“,
“宽度”:“99.5%”
});
$(“.粗线标题”).css(“显示”,“粗线标题”);
}
否则{
var$homeTab=$(');
$(“.main nav li”).css({
'位置':'固定',
“宽度”:“100%”,
“顶部”:“0”,
“左”:“0”,
“页边距顶部”:“0”
});
如果(!已添加){
$(“#主导航”).prepend($homeTab);
添加=真;
}
$(“.粗行标题”).css(“显示”、“无”);
}
};
$(窗口)。滚动(顶部);
}
};
窗宽();
});
我希望这能有所帮助:)你给出了一个位置:固定在列表项上。您需要在容器上设置“固定”选项。e、 g
$(".main-nav").css({'position': 'fixed', 'width': '100%', 'top':'0', 'left':'0', 'margin-top':'0'});
而不是
$(".main-nav li").css({'position': 'fixed', 'width': '100%', 'top':'0', 'left':'0', 'margin-top':'0'});
希望这有帮助 哎呀,我忘了把它换回去。在我开始胡闹之前,我就是这么想的。。。谢谢这是有道理的,因为函数在每次有人滚动时都会触发,除非我停止编程,否则元素会继续添加到函数中。我试图使用你介绍的if(!add)部分,但firefox不喜欢。我一直在我的控制台中得到这个错误(添加未定义)。好吧,我不再每次滚动时都会让控制台崩溃,但它看起来并不是在元素前面。
$(".main-nav li").css({'position': 'fixed', 'width': '100%', 'top':'0', 'left':'0', 'margin-top':'0'});