我已经解决了我的参考下面,我的问题是,现在更加具体。
背景:我有一组路径组成地图。目前,当点击每个区域时,我都有一个视觉开/关状态,但是我只想在任何给定时间只有一个区域处于“活动”状态。我正在调用一个函数来循环所有区域,并将任何非活动区域的填充颜色更改为灰色。目前,在运行以下行时似乎会创建一组新路径:var obj = rsr.path(pathObj.path);
。下面是之前和之后的屏幕。
我知道这是不是一个渲染问题,因为新的路径被注入到DOM。
这是我最后一个关于这个项目的障碍,我觉得我太亲近了!
你可以在这里查看网页:再次
function onlyOneRegion() {
for (var state in paths) {
var pathObj = paths[state];
var obj = rsr.path(pathObj.path);
if (pathObj.active) {
// do something
} else {
pathObj.active = false;
obj.toFront();
obj.animate({
fill: attributes.fill,
scale: 1,
'stroke' : '#fff',
'stroke-width' : 1,
transform: 's1'
}, 150);
}
};
}
感谢:http://ochrerecruitment.com.s145292.gridserver.com/job-search/
这是我在点击活动结束运行功能(Eliran马尔卡的礼貌,谢谢)!
原题:
我目前得到的地图点击时,设置一个<select>
值。地图上的每个区域也具有悬停状态和开/关状态。
<select>
功能只允许一个区域在任何给定时间处于活动状态。
我的问题是,我不知道如何直观显示只有一个活动项目。所以在点击时,一个区域开启,但我也希望它关闭所有其他区域。
我的全部功能都可以在这里看到:http://pastie.org/3675997
每个区域的结构如下:
var paths = {
southisland: {
name: 'southisland',
path: 'coords',
active: 'false'
}
在我的单击事件
我有以下的if else:
if (this.active) {
this.active = false;
this.animate({
fill: attributes.fill,
scale: '1',
'stroke-width' : '1',
transform: 's1'
}, 150);
} else {
this.active = true;
this.animate({
fill: '#e36f1e',
scale: '1',
'stroke-width' : '1',
transform: 's1'
}, 150);
}
之后,我试图调用以下功能:
function onlyOneRegion() {
for (var state in paths) {
var obj = rsr.path(paths[state].path);
if (state[active]) {
} else {
state[active] = false;
obj.animate({
fill: attributes.fill,
scale: '1',
'stroke-width' : '1',
transform: 's1'
}, 150);
}
};
}
此函数不会抛出任何错误,但不会停止工作。
任何帮助,非常感谢!
你可能会分享我试图达到同样的目的,并找不到任何东西的代码。 – 2012-07-23 23:42:07