首先,我已经在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
都会增加,并且应该返回下一次出现的偏移量,但是当变量增加而没有问题时,它总是返回相同的值。
我做错了什么?
答案 0 :(得分:1)
通常它的工作检查现场例子如下:
console.log( $('.ocurrencia_busqueda:eq(0)').offset() );
console.log( $('.ocurrencia_busqueda:eq(1)').offset() );
console.log( $('.ocurrencia_busqueda:eq(2)').offset() );
//Object {top: 8, left: 8}
//Object {top: 8, left: 60.875}
//Object {top: 8, left: 113.75}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span style="color:red" class="ocurrencia_busqueda" onclick="javascript:console.log($(this).offset());">TEXT1</span>
<span style="color:red" class="ocurrencia_busqueda" onclick="javascript:console.log($(this).offset());">TEXT2</span>
<span style="color:red" class="ocurrencia_busqueda" onclick="javascript:console.log($(this).offset());">TEXT3</span>
使用each()
函数尝试:
$('.ocurrencia_busqueda').each(function(index){
console.log( $('.ocurrencia_busqueda:eq('+index+')').offset() );
})
//Object {top: 8, left: 8}
//Object {top: 8, left: 60.875}
//Object {top: 8, left: 113.75}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span style="color:red" class="ocurrencia_busqueda" onclick="javascript:console.log($(this).offset());">TEXT1</span>
<span style="color:red" class="ocurrencia_busqueda" onclick="javascript:console.log($(this).offset());">TEXT2</span>
<span style="color:red" class="ocurrencia_busqueda" onclick="javascript:console.log($(this).offset());">TEXT3</span>
答案 1 :(得分:-1)
似乎是您要添加到span元素的类.ocurrencia_busqueda
的问题。检查类是否已将position:absolute
声明为属性。这是我能想到的唯一场景,当所有span
元素的偏移量相同时。
这是一个显示您可能遇到的问题的示例: