让我说我有这个阵列:
likes = [4,6,42,72,7,4,42,56,6,24];
time = [1,2,3,4,5,6,7,8,9,10];
当我点击其中一个条形图时,我会根据数组likes
位置转发到当前时间。
this.click(function () {
var pos = result_likes.indexOf(this.bar.value);
var pos2 = result_time[pos];
setCurTime(pos2);
});
然而,当我有相同的喜欢值时,例如数字4,它将有两个位置,而SetCurTime只会在我第一次出现“喜欢= 4时出现timecode[0];
”
我如何解决这个问题并向正确的时间位置前进?
答案 0 :(得分:0)
您需要在条形元素中嵌入元数据才能解决此问题。例如,您可以使用custom data attributes之类的:
<div class="bar" data-index"5">4</div>
当然,您可以动态生成此项,以使用正确的索引和值创建每个栏。
然后在你的点击处理程序中将是:
this.click(function () {
var pos = this.bar.dataset.index;
var pos2 = result_time[pos];
setCurTime(pos2);
});
答案 1 :(得分:0)
根据您使用gRaphael库,也许您可以抓取条形元素以查看它在图表中的哪个元素,如下所示:
this.click(function(evt) {
var pos = 0;
var child = evt.currentTarget;
var type = child.nodeName;
while( (child = child.previousSibling) != null && type === child.nodeName)
pos++;
var pos2 = result_time[pos];
setCurTime(pos2);
});
答案 2 :(得分:0)
此处针对需要类似解决方案的任何其他人发表评论:
var pos2 = result_time[this.bar.id];