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);

编辑:这两个步骤 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,第二个两个框显示“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 回答