2

我有一个滚动插件,它在初始化后将滚动量存储在特定的 ID 中。

我正在使用 jQuery 获取 div 的 id 并将其存储在可变出价中。

var bid = $(this).parent().parent().find(".video_s").attr('id');

在控制台 var bid 返回元素 ID。(这工作正常)

由于滚动量存储在特定于 DOM 元素 ID 的对象中

var bpos = bid.scrollData.scrollPosition[0][0];

上面的代码不起作用

变量 bid 包含元素的 id。

如果我输入elementID.scrollData.scrollPosition[0][0]控制台,它会完美地返回滚动量。其中 elementID 是水平容器的特定 ID。

请任何人告诉我什么是错的。

解决方案 1: window[bid].scrollData.scrollPosition[0][0]

解决方案 2: eval(bid).scrollData.scrollPosition[0][0]

注意:永远不要使用 eval()。eval() 速度慢且存在安全风险

4

3 回答 3

0

由于bid只是包含元素 ID 的字符串,但您需要一个包含实际 dom 元素的 jQuery 对象,因此代码应为:

var bpos = $('#'+bid).scrollData.scrollPosition[0][0];

$('#'+bid)根据bid中存储的ID获取元素。

在这个插件的情况下,元素存储在一个全局变量中(顺便说一句。非常糟糕的编程风格),所以你可以使用以下方法来访问它们:

window[bid].scrollData.scrollPosition[0][0];
于 2012-09-08T10:40:49.457 回答
0

我认为你应该存储位置而不是 id

var bid = $(this).parent().parent().find(".video_s").attr('id');
var bpos = $('#'+bid).scrollData.scrollPosition[0][0]
于 2012-09-08T10:41:22.747 回答
0

做这个:

$('#'+bid).scrollData.scrollposition[0][0];
于 2012-09-08T10:41:23.933 回答