2012-12-30 52 views
0

对不起,如果这看起来很短/没有研究(我可能在错误的逻辑中考虑了所有错误的地方),但我觉得答案将是简单/直截了当。(Javascript/RaphaelJS)我将如何将变量追加到新数组中的新对象?

说我有一些变量设置,例如:

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无论哪一组被点击。相反,我想显示switch2当set2被点击...甚至switch3与set3 ..等。谢谢。

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”Divs。

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

+0

是'segment1path'应该是'path1'? – Barmar

回答

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(); 
    }); 
} 
+0

你的第一个例子创建一个对象而不是一个数组。你的第二只将这些集合添加到一个新的开关阵列。我需要将每个特定的集合与每个特定的开关关联起来,全都在一个新的数组中。 (即,set1具有id:switch1,set2具有id:switch2等)都在这个新数组内。 – user1896863

+0

你没有任何意义。也许可以解释你想要完成的事情,而不是你想如何实现它? –

+0

我有我的代码设置为显示特定的隐藏divs(switch1,switch2),当我点击拉斐尔对象。你的第一个方法是我用了一段时间,但由于某种原因,它不喜欢我设置的集合(我需要多个变量来显示相同​​的开关),只适用于单个变量。以下是我正在处理的内容: – user1896863

2

我想你要寻找的是这样的:

var switches = [ 
    { id: 'switch1', set: set1 }, 
    { id: 'switch2', set: set2 } 
]; 
+0

嘿男人谢谢你的回应,虽然不是很适合我,但检查我的编辑上面,希望它阐明了更多的东西我正在努力。 – user1896863

+0

'initSwitch()'函数不会对'switchStr'做任何事情。它将'set1'和'set2'的点击处理程序设置为相同的东西,所以它们都显示相同的DIV并不奇怪。 – Barmar

+0

明白了。谢谢。 – user1896863

相关问题