描画関数の戻り値を使用した方がよいでしょう。
var element1 = p.circle(20,20,20);
var element2 = p.circle(99,99,20);
$n("#shide").click(function(){
element1.hide();
// element2.hide();
});
また、私はこの種の問題についていくつかの高度なスキルを持っています。これらのスキルは、ajax 応答データを使用して円などを描画するときに非常に役立ちます。
function drawCircle() {
var elementObj = {};
$.ajax({url: '', dataType: 'json', method: 'post', data: yourData, success: function (data) {
elementObj['circle1'] = p.circle(20,20,20);
elementObj['circle2'] = p.circle(99,99,20);
});
return elementObj;
}
次に、この関数を次のように呼び出します。
var ele = drawCircle();
var hoverInCb = function () {
ele['circle1'] && ele['circle1'].show();
ele['circle2'] && ele['circle2'].show();
};
var hoverOutCb = function () {
ele['circle1'] && ele['circle1'].hide();
ele['circle2'] && ele['circle2'].hide();
};
これらのコードは、返された elementObj がオブジェクトの「リンク」であるため機能します。ajax リクエストによってデータがフェッチされた後、elementObj にデータが入力され、その外側の ele 変数も新しいデータを取得します。