2012-04-23 51 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