单击所有项目的活动状态

时间:2015-11-03 15:39:31

标签: javascript jquery onclick

我正在使用newsignature(https://newsignature.github.io/us-map/)的US-Map插件。我建立了一个图表来比较每个州点击的不同州法律。

现在我可以比较3种不同的状态,用户可以关闭状态并点击不同的状态进行比较。

单击状态后,您将获得活动状态。一旦您单击另一个状态,即活动状态消失并进入另一个状态。我无法弄清楚如何为每个被点击的状态绑定一个活动状态。

<dependencyManagement>
    <dependencies>
        <dependency>
        <groupId>org.sakaiproject.rubrics</groupId>
          <artifactId>rubrics-api</artifactId>
          <version>10.4</version>
          <scope>provided</scope> <!-- from the CONTAINER -->
        </dependency>
        <dependency>
            <groupId>org.sakaiproject.rubrics</groupId>
            <artifactId>rubrics-impl</artifactId>
            <version>10.4</version>
        </dependency>
    </dependencies>
</dependencyManagement>

该行在点击时激活状态。我认为这需要应用于所有被点击的状态,但将其添加到点击状态不会做任何事情。

以下是设置当前功能的小提琴:https://jsfiddle.net/yurtqy87/1/

有什么想法吗?

注意:我只在纽约,加利福尼亚,格鲁吉亚,阿拉斯加,阿拉巴马和佛罗里达州提供数据,以节省时间。单击任何其他状态不会在下面的列中产生任何结果。

1 个答案:

答案 0 :(得分:0)

我查看了库API和方法,你必须抓住它。我会用一个数组来存储所选的陈述。

var selectedStates = ['XX', 'YY', 'ZZ'];

创建后你可以用不同的方式为它们着色

stateSpecificStyles: {
        'XX': {fill: 'red'},
        'YY': {fill: 'red'},
        'ZZ': {fill: 'red'}
    } 

当点击一个州时,如果它在选择中你应该删除它,如果不是你应该删除它

在“点击”处理程序中删除

var toRemove = data.name;

selectedStates = jQuery.grep(selectedStates, function(value) {
  return value != toRemove;
});

删除或添加状态后,只需刷新地图和用户界面。