私のリンクから、マップ上のさまざまな地域を選択できます。以前に選択した郡を再選択するまで、すべてが機能しているようです。各パスに保存されたデータ値によって、それが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
、以前のパス(またはその問題の任意のパス)で要素データを取得する方法を知りたいです。