2012-04-23 27 views
0

paper.path编号:如何获得与我使用此代码raphael.js

var current = null; 
for (var state in aus) { 
    aus[state].color = Raphael.getColor(); 
    (function(st, state) { 
     st[0].style.cursor = "pointer"; 
     st[0].onmouseover = function() { 
      current && aus[current].animate({ 
       fill : "#333", 
       stroke : "#666" 
      }, 500) && (document.getElementById(current).style.display = ""); 
      st.animate({ 
       fill : st.color, 
       stroke : "#ccc" 
      }, 500); 
      st.toFront(); 
      R.safari(); 
      document.getElementById(state).style.display = "block"; 
      current = state; 
     }; 
     st[0].onmouseout = function() { 
      st.animate({ 
       fill : "#333", 
       stroke : "#666" 
      }, 500); 
      st.toFront(); 
      R.safari(); 
     }; 
     if (state == "nsw") { 
      st[0].onmouseover(); 
     } 
    })(aus[state], state); 
} 

从这个页面:http://raphaeljs.com/australia.htm

,我已经加入此:

st[0].onmousedown = function() { 
    paper.print(); 
    var url = "index.php?cmd=2&sub=0"; 
    window.open(url, "popup"); 
}; 

成for循环打开一个由php脚本生成的弹出窗口。

'sub'请求参数是一个与状态相关的文件夹对应的数值,但我不知道如何将数字与它关联。

假设每个状态都是一个从0到状态数的数字。

回答

0

你为什么不创建ID的每个状态:

var ids = {}, i = 0; 
for (var state in aus) { 
    ids[state] = i; 
    i++; 
} 

然后:

var url = "index.php?cmd=2&sub=" + ids[state]; 
+0

简单和漂亮的!它只是做一个数组,我没有考虑过,谢谢。 – patko 2012-04-24 14:11:42

+0

k,如果它适合你,你可以打勾接受回答:) – mihai 2012-04-24 14:12:54