(Javascript/RaphaelJS)如何将变量附加到新数组中的新对象

(Javascript/RaphaelJS) How would I append a variable to a new object in a new array?

本文关键字:新数组 对象 数组 新对象 RaphaelJS Javascript 变量      更新时间:2023-09-26

抱歉,如果这看起来很短/未经研究(我可能一直在寻找所有错误的地方,错误的逻辑在脑海中),但我觉得答案将是简单/直接的。

假设我设置了一些变量,例如:

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切换3…等。谢谢。

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

最后的编辑:

看看我刚刚写的这篇文章。我希望第一个框和图像显示"switch1" Div,第二个两个框显示"switch2" Div。

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

我想你要找的是这样的东西:

var switches = [
    { id: 'switch1', set: set1 },
    { id: 'switch2', set: set2 }
];
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();
    });
}