0

申し訳ありませんが、これが短い/未調査のように思われる場合 (私はおそらく間違ったロジックを念頭に置いてすべての間違った場所を探してきました)、答えは単純/簡単になると思います.

たとえば、いくつかの変数が設定されているとします。

var path1 = paper.path("M 95, 259 L 110, 250... etc. etc.. ");

var path2 = paper.path("M 96 138 L 55, 100,... etc... etc..");

それらをセットに挿入...

var set1 = paper.set();
    set1.push(icon1, path1);

編集: これらの 2 つの手順 x2 ^^^^^^^^^^

次に、その新しいセットを、独自の ID を持つ新しいオブジェクトを含む新しい配列に挿入したいので、後でクリック ハンドラー関数を設定するときにその配列を参照できます。

基本的に、各セットをこの新しいオブジェクトの新しい配列にアタッチする方法はありますか?

編集:

これがより具体的に私が取り組んでいるものです..その配列を実行するためのforループを作成しました...これは機能しますが、どのセットがクリックされても最初のスイッチDIVのみを表示します。代わりに、set2がクリックされたときにswitch2を表示したい...またはset3でswitch3を表示したい..など。ありがとう。

    switches = [
        { id: 'switch1', set: set1 },
        { id: 'switch2', set: set2 }

    ],
    current,
    max,
    i;


for (i = 0, max = switches.length; i < max; i++) {
    initSwitch(switches[i].set, switches[i].id);
}

function initSwitch(switchStr, targetId) {

        txElm = document.getElementById(targetId);

     var clickHandler2 = (function (e) {
         if (current) {
             if (current === txElm) {
                 return;
             }
             current.style.display = '';
         }
         current = txElm;
         current.style.display = 'block';
         //this.toFront();
         paper.safari();
    });

    set1.click( clickHandler2 );
    set2.click( clickHandler2 );

最終編集:

私が書いたばかりのこのjsfiddleをチェックしてください。最初のボックスと画像に「switch1」Div を表示し、次の 2 つのボックスに「switch2」Div を表示します。

http://jsfiddle.net/thecomplex/AEa2X/13/

4

2 に答える 2

2

私はあなたが探しているものはこのようなものだと思います:

var switches = [
    { id: 'switch1', set: set1 },
    { id: 'switch2', set: set2 }
];
于 2012-12-30T06:26:18.080 に答える
1
var switches = [
        { id: 'switch1', set: set1 },
        { id: 'switch2', set: set2 }
];
var current;

for (var i = 0, max = switches.length; i < max; i++) {
    initSwitch(switches[i].set, switches[i].id);
}

function initSwitch(set, targetId) {
    var txElm = document.getElementById(targetId);

    set.click(function(e) {
        if(current == txElm)
            return;
        if(current)
             current.style.display = '';
        current = txElm;
        current.style.display = 'block';
        paper.safari();
    });
}
于 2012-12-30T01:36:54.277 に答える