【发布时间】:2015-12-01 18:08:07
【问题描述】:
首先,我已经在这里对 stackoverflow 进行了大量调查,但没有运气。应该很简单...我将.ocurrencia_busqueda 类动态添加到很多跨度中。如果我这样做 $('.ocurrencia_busqueda').length 它会返回 64 次。但是当尝试获取每个发生的偏移量时,我总是得到相同的值,无论是从控制台尝试代码还是在脚本中硬编码:
JS
$('.ocurrencia_busqueda:eq(0)').offset()
Object { top=-434.79998779296875, left=566.75}
$('.ocurrencia_busqueda:eq(1)').offset()
Object { top=-434.79998779296875, left=566.75}
$('.ocurrencia_busqueda:eq(2)').offset()
Object { top=-434.79998779296875, left=566.75}
我已经尝试使用
获取偏移量$('.ocurrencia_busqueda').eq(N)
而不是
$('.ocurrencia_busqueda:eq(N)')
运气不好。
应该返回偏移量的函数是:
var offset = 0;
function busca_texto() {
var divPosition = $('.ocurrencia_busqueda').eq(parseInt(mioffset)).offset();
console.log(divPosition);
$('html, body').animate({scrollTop: divPosition.top}, "slow");
mioffset++;
}
跨度就像 HTML
<span style="color:red" class="ocurrencia_busqueda" onclick="javascript:console.log($(this).offset());">TEXT</span>
当点击元素时,onclick 事件会为每个元素提供不同的偏移量。每次调用 busca_texto() 函数时,变量 mioffset 都会增加,并且应该返回下一次出现的偏移量,但它总是返回相同的,无论是在变量增加时没有问题。
我做错了什么?
【问题讨论】:
-
请发布一个完整的代码示例。
-
如果你想获取每个元素的偏移量,为什么不直接使用 $().each() 呢?
-
eq(x)没有损坏。 Example using your class。为了让我们为您提供帮助,您必须生成一个 MCVE,最好使用网站上的 Stack Snippets(<>按钮)。 -
我需要从一个函数中访问它们,该函数使用一个变量作为要插入
eq()的数字。我编辑了我的帖子以添加功能 -
如果它与 .each 使用相同的选择器一起工作,我不相信你很遗憾,因为除非它们实际上都具有相同的偏移量,否则这是不可能的。
标签: javascript jquery html offset