0

用文字解释这非常复杂,但我正在尝试创建一个系统,其中我有一个元素(图像中的数字 1)源于另一个元素。在某些情况下,例如元素二,它可能源于两个方向。我希望能够激活这些元素,但前提是链接到它的元素被激活。

珠子示例

例子:

现在可以激活元素二右侧的元素,但如果元素二未激活,我必须先激活元素一。

我想过使用数据属性并给他们一个数字并检查之前的数字是否处于活动状态,但问题是有时它会分成两个、三个或更多。有什么办法可以做到这一点?任何建议都会很棒,我只是想不出一种检测这种情况的方法,在此先感谢!

附加信息:

基本思想是,在您激活该元素之前,必须有一个激活的触摸元素(深蓝色)。在下图中,您可以看到到达元素 A 的两种不同方式,同时查看深蓝色线条,您可以看到现在可以激活哪些其他元素。

在此处输入图像描述

4

1 回答 1

2

我建议在页面加载时构建一个图表,然后在页面的整个生命周期中使用该图表来跟踪已激活的内容等。

图表的基本节点如下所示:

var node = {
   adjacent : [], // list of adjacent nodes (depending on your use case, you might not need this
   previous : prevNode, // previous node (for node2, it is node1)
   isActive : false,
   activate : function(){ 
       // code that checks previous and activates the current node
       // if previous is not active, it can call previous.activate()
       // which will then activate prevNode and its dependencies
   }
}
于 2012-11-12T06:17:45.897 回答