gpt4 book ai didi

javascript - 传递对调用 jQuery 插件方法(窗口对象)的 jQuery 对象的引用

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

我试图将 $(window) 作为参数传递给某个函数,但是当我尝试从函数内部获取 scrollTop() 时,它返回 0但如果我尝试获取 $(window).scrollTop 它会给我正确的结果。

您能告诉我我犯了什么错误吗?如果将元素作为参数传递不是正确的方法,那么它的替代方法可能是什么。

以下是我的代码。

//Funtion Declaration
$.fn.someFunction = function (element) {
var container = $(this),
viewTop = element.scrollTop(),
console.log($(window).scrollTop());//returns correct value
console.log(viewTop);//returns 0
}


//Calling the function
$fn.otherFunction = function(){
$(el).someFunction($(this));
}

$(window).otherFunction();

窗口高度也是如此。

// Following is the actual Code. It may be messy to look at but still.

$(window).scroll(function () {
$(window).scrolling();
$(".footer").displayFooter();
});

$.fn.scrolling = function () {
$(".parallax_active").each(function (i, el) {
$(el).parallax($(this));
})
// some more stuff goes here.
};


$.fn.parallax = function (parent) {
var container = $(this),
viewTop = parent.scrollTop(),
viewHeight = parent.height(),
viewHeader = $(".header-container").outerHeight(),
viewBottom = viewTop + viewHeight,
header = viewTop + viewHeader;
console.log($(window).scrollTop());
console.log(viewTop);
console.log(viewHeight);
}

谢谢,阿尔皮塔

最佳答案

在您的 .each() 方法中,this 指的是您要迭代的元素。

如果您希望 this 绑定(bind)到调用 .scrolling() 方法的元素,请获取对 this 的引用 .each() 方法之外:

$.fn.scrolling = function () {
var self = this;
$(".parallax_active").each(function (i, el) {
$(el).parallax($(self));
})
};

您还可以明确地传递一个也包含 window 对象的 jQuery 对象:

$(el).parallax($(window));

关于javascript - 传递对调用 jQuery 插件方法(窗口对象)的 jQuery 对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29498193/

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