0

我正在使用这段代码:

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 到状态数的数字。

4

1 回答 1

0

为什么不为每个州创建 id:

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

接着:

var url = "index.php?cmd=2&sub=" + ids[state];
于 2012-04-23T19:33:55.580 回答