从我的链接中,您可以在地图上选择不同的地区,一切似乎都在工作,直到您重新选择之前选择的县。与每条路径一起存储的数据值决定是它isSelected
还是notSelected
. 我在更改刚刚单击的元素数据方面没有问题,this
但我找不到以可以更改元素数据的方式存储最后一个选定元素的方法。这意味着我首先必须单击上一个县将其元素数据设置为notSelected
首先我定义var currentcountyselected = "";
. 这允许我存储paths[arr[this.id]].name;
. 当我单击新路径时,我可以更改最后一个路径填充$('#'+currentcountyselected).attr({fill: attributes.fill});
在 Raphael 的 for 循环中,我设置obj.data('selected', 'notSelected');
了所有路径元素都设置为notSeelected
.
所以我需要一些方法来存储最后一个路径,这样我就可以改变它的元素数据
这是从现场示例中清除的点击功能。
obj.click(function(){
if(this.data('selected') == 'notSelected')
{this.animate({fill: '#698B22' }, 300);
this.data('selected', 'isSelected');
$('#'+currentcountyselected).attr({fill: attributes.fill});
paths[arr[this.id]].value = "isSelected";
currentcountyselected = paths[arr[this.id]].name;
}
else
{this.animate({fill: '#32CD32'}, 300);
paths[arr[this.id]].value = "notSelected"; /* set path value*/
this.data('selected', 'notSelected');
}
});/* end mark selections */
我已经在这个项目上工作了一段时间,客户现在希望界面以不同的方式工作。这真的占用了我的时间。
编辑:
虽然我通过简单地取出解决方案找到了解决方案,但if/else
我仍然想知道如何获取先前路径(或任何路径)中的元素数据。