gpt4 book ai didi

javascript - 在函数中,jQuery 选择器返回 PreviousObject 而不是所选对象

转载 作者:行者123 更新时间:2023-11-28 09:10:01 25 4
gpt4 key购买 nike

我试图将我网站上的第二个菜单粘贴到顶部菜单,并且我在两个引导列(第 8 列和第 4 列)中有几个菜单。因此,虽然我在函数之外使用了 jQuery 选择器,但它运行良好。但是当我决定重构我的代码并创建一个将类作为参数的函数时,它实际上停止了正常工作。元素 $element 只是一个类为“.navbar.navbar-default.stick-left”的 div 元素。

这里是代码:

var stickelement = function(classid) {
$element = $(classid);
console.log($element);
if ($element.length) {

elementOffset = $element.offset().top;

$(window).scroll(function (e) {
scrollTop = $(window).scrollTop() + $('.navbar.navbar-default.navbar-fixed-top').height();
distance = elementOffset - scrollTop;

if (distance < 0 && $element.css('position') != 'fixed') {
$element.css({
'position': 'fixed',
'margin': '0px',
'top': ($('.navbar.navbar-default.navbar-fixed-top').height()).toString() + 'px'
});
}
if (distance > 0 && $element.css('position') == 'fixed') {
$element.css({'position': 'static', 'margin': '50px'});
}
});
}
};

stickelement(".navbar.navbar-default.stick-left");

在重新加载页面后,我在我的控制台中只看到 n.fn.init[0] 在 proto 对象内部具有单元化的“top”字段且长度为 0。

我哪里弄错了?

最佳答案

所以,我解决了我的问题,但是第二个问题出现了。我正在尝试对 $(window).scroll 进行两次异步调用:

var stickelement = function(classid) {
$element = $(classid);
console.log($element);
if ($element.length) {
elementOffset = $element.offset().top;

$(window).scroll(function (e) {
scrollTop = $(window).scrollTop() + $('.navbar.navbar-default.navbar-fixed-top').height();
distance = elementOffset - scrollTop;

if (distance < 0 && $element.css('position') != 'fixed') {
$element.css({
'position': 'fixed',
'margin': '0px',
'top': ($('.navbar.navbar-default.navbar-fixed-top').height()).toString() + 'px'
});
}
if (distance > 0 && $element.css('position') == 'fixed') {
$element.css({'position': 'static', 'margin': '50px'});
}
});
}
};

stickelement('.stick-left');
stickelement('.stick-right');

但它们不能同时工作。两个菜单中只有一个可以通过这种方式固定在顶部。如何更正我的解决方案以便将两个菜单粘贴到顶部菜单?

关于javascript - 在函数中,jQuery 选择器返回 PreviousObject 而不是所选对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com