我有一个滚动插件,在初始化后将滚动量存储在特定的ID中。
我正在使用jQuery来获取div的id并将其存储在变量出价中。
var bid = $(this).parent().parent().find(".video_s").attr('id');
在console var bid中返回元素ID。 (这可以正常工作)
由于滚动量存储在特定于DOM元素ID的对象
中var bpos = bid.scrollData.scrollPosition[0][0];
上面的代码无效
变量出价包含元素的ID。
如果我在控制台中键入elementID.scrollData.scrollPosition[0][0]
,它会完全返回滚动量。其中elementID是水平容器的特定ID。
请有人告诉我什么是错的。
解决方案1:
window[bid].scrollData.scrollPosition[0][0]
解决方案2:
eval(bid).scrollData.scrollPosition[0][0]
注意:永远不要使用eval()。 eval()速度慢且存在安全风险
答案 0 :(得分:0)
由于bid
只是包含element-id的字符串,但是你需要一个包含实际dom元素的jQuery Object,代码应为:
var bpos = $('#'+bid).scrollData.scrollPosition[0][0];
$('#'+bid)
根据出价中存储的ID获取元素。
在这个插件的情况下,元素存储在一个全局变量中(这是非常糟糕的编程风格),因此您可以使用以下命令来访问它们:
window[bid].scrollData.scrollPosition[0][0];
答案 1 :(得分:0)
我认为你应该存储位置而不是id
var bid = $(this).parent().parent().find(".video_s").attr('id');
var bpos = $('#'+bid).scrollData.scrollPosition[0][0]
答案 2 :(得分:0)
这样做:
$('#'+bid).scrollData.scrollposition[0][0];