Javascript jquery插件这个。每个都在函数中
我试着写一个小的jquery插件。过去我主要使用javascript。 我不懂这个.每个函数。首先,我为$.fn编写了一个新方法。在这个方法中,我想得到所有元素的offset()Javascript jquery插件这个。每个都在函数中,javascript,jquery,Javascript,Jquery,我试着写一个小的jquery插件。过去我主要使用javascript。 我不懂这个.每个函数。首先,我为$.fn编写了一个新方法。在这个方法中,我想得到所有元素的offset() $.fn.jquerynParalFade = function() { this.each(function() { console.log($(this).offset().top); }); } 这对我来说很好。但是,如果我调整屏幕大小(例如在打开设备时),我希望获得所有元素的新位置。为此,我
$.fn.jquerynParalFade = function() {
this.each(function() {
console.log($(this).offset().top);
});
}
这对我来说很好。但是,如果我调整屏幕大小(例如在打开设备时),我希望获得所有元素的新位置。为此,我添加了一个可以在resize上运行的函数
$(window).resize(function() {
resize();
});
现在我有一个问题,我不能在函数中使用this.each()。相反,我使用$(this)。每个。但是如果我这样做,控制台会告诉我offset()
不是$(this)
的函数
这就是代码的样子:
function resize(){
$(this).each(function(index) {
console.log($(this).offset().top);
});
}
那么我如何在jquery插件的函数中使用它呢 您必须将此
的上下文绑定到您的函数,以使调整大小功能正常工作:
var myResize = resize.bind(this)
myResize() // now it should work
另一种方法是传递上下文:
function resize (context) {
context.each( ... )
}
$(window).resize(function () { resize(this) })
要阅读的一些概念:
这应该是什么?因为当你调用resize()
时,你并没有将这个
设置为任何东西。我真的很想理解它!我想我理解第二个。但它不起作用。控制台告诉我context.each不是一个函数。但没关系,因为我相信第一个更聪明。但是我不理解bind方法。我是否将其绑定到我的调整大小功能?如果是,为什么保存变量的绑定?您是否调用下一行中的新变量?抱歉问了这么多问题!顺便说一句,控制台告诉我,在resize函数内部,这类似于:Window→ file:///C:/xampp/htdocs/parallax/index.html. 这正确吗?因为我期待一个目标?!好的,在阅读了URL之后,我得到了它。他们很有帮助。多谢各位!