Javascript JQuery在父位置更改时删除元素
我正在制作一个带有粘性导航条的网站,当导航条到达页面顶部(用户向下滚动)时会出现一个符号,当导航条离开页面顶部(用户向上滚动)时会消失。到目前为止,我可以使符号出现,但不能重新出现 下面是导航的js代码和HTML:Javascript JQuery在父位置更改时删除元素,javascript,jquery,html,css,nav,Javascript,Jquery,Html,Css,Nav,我正在制作一个带有粘性导航条的网站,当导航条到达页面顶部(用户向下滚动)时会出现一个符号,当导航条离开页面顶部(用户向上滚动)时会消失。到目前为止,我可以使符号出现,但不能重新出现 下面是导航的js代码和HTML: $(文档).ready(函数(){ 变量距离=$(“#导航栏”).offset().top, $window=$(window); $(窗口)。滚动(函数(){ 如果($window.scrollTop()=距离){ 如果($(“#导航符号”).length){ console.l
$(文档).ready(函数(){
变量距离=$(“#导航栏”).offset().top,
$window=$(window);
$(窗口)。滚动(函数(){
如果($window.scrollTop()<距离){
$(“#导航”)。删除(
“” ”;
}
如果($window.scrollTop()>=距离){
如果($(“#导航符号”).length){
console.log(“不添加”)
}否则{
$(“#nav”)。前置(
“” ”;
}
}
});
});代码>
-
-
-
-
当您调用该方法时,您现在没有删除节点
- 不带参数的remove方法正在删除当前节点
- 带参数的remove方法正在从提供的选择器中移除元素
通过提供HTML,您将为未附加到DOM文档的节点生成选择器。因为他不在那里,所以移除它没有任何影响
您可以尝试以下方法:
$(document).ready(function() {
var distance = $('#navbar').offset().top,
$window = $(window);
$(window).scroll(function() {
if ($window.scrollTop() < distance) {
$("#navSymbol").remove();
}
if ($window.scrollTop() >= distance) {
if ($("#navSymbol").length) {
console.log("not adding")
} else {
$("#nav").prepend("<li id=\"navSymbol\"><a href=\"#\">▲</a></li>");
}
}
});
$(文档).ready(函数(){
变量距离=$(“#导航栏”).offset().top,
$window=$(window);
$(窗口)。滚动(函数(){
如果($window.scrollTop()<距离){
$(“#navSymbol”).remove();
}
如果($window.scrollTop()>=距离){
如果($(“#导航符号”).length){
console.log(“不添加”)
}否则{
$(“#nav”).prepend(“” ”);
}
}
});
您也可以使用jQuery hide函数隐藏元素,然后使用show函数再次显示元素
$(文档).ready(函数(){
var-previous_距离=0;
$(窗口)。滚动(函数(){
var distance=$('#navbar').offset().top;
if(上一个_距离<距离){
$(“#navSymbol”).hide();
}
否则{
$(“#navSymbol”).show();
}
上一个距离=距离
});
});
-
-
-
-
在调用“remove()”时,代码“remove”方法删除启动调用的jQuery集合中包含的节点时出错
你可以用
$("#nav").text("About");
而不是
$("#nav").remove(
"<li id=\"navSymbol\"><a href=\"#\">▲</a></li>");
$(“#导航”)。删除(
“” ”;
$(文档).ready(函数(){
变量距离=$(“#导航栏”).offset().top,
$window=$(window);
$(窗口)。滚动(函数(){
如果($window.scrollTop()<距离){
$(“#navSymbol”).remove();
}
如果($window.scrollTop()>=距离){
如果($(“#导航符号”).length){
console.log(“不添加”)
}否则{
$(“#nav”)。前置(
“” ”;
}
}
});
});
-
-
-
-
请使用remove()函数删除任何元素,因为jquery提供了删除特定元素的函数。第二次出现的节点是否有问题,或者只是节点没有消失?它只是没有消失,没有出现问题。
$(document).ready(function() {
var distance = $('#navbar').offset().top,
$window = $(window);
$(window).scroll(function() {
if ($window.scrollTop() < distance) {
$("#navSymbol").remove();
}
if ($window.scrollTop() >= distance) {
if ($("#navSymbol").length) {
console.log("not adding")
} else {
$("#nav").prepend(
"<li id=\"navSymbol\" ><a href=\"#\">▲</a></li>");
}
}
});
});