2

ボタン クリック イベントで raphael svg グラフを表示/非表示にしたい

これを行う方法を知っている人をお願いします。私を助けてください

私はこの方法でやろうとしていますが、うまくいきません。

var p = Raphael(900,70,200,200);

p.circle(20,20,20); 
    $n("#shide").click(function(){
    p.hide();
    });

これを行う方法を知っている人をお願いします。私を助けてください。
前もって感謝します。

4

2 に答える 2

3

このような:

var paper = Raphael(10, 50, 320, 200);

paper.circle(10, 10, 10, 10)
     .attr({fill: "#000"})
     .click(function () {
        this.hide();
     });
于 2012-10-31T13:39:46.767 に答える
3

描画関数の戻り値を使用した方がよいでしょう。

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 変数も新しいデータを取得します。

于 2013-05-16T09:02:55.127 に答える