0

在过去的 2 天里,我花了很多时间试图找到解决这个问题的方法,但我的经验不足阻碍了我。

我正在开发一个图像地图资源。用户打开一个包含动态 url 的模式窗口。正如您从我的代码中看到的那样,我已经测试了一个警报,它会抛出不同的 id(正确的结果),但同样不适用于 url 窗口。我只得到一个 url 变量,而不是警报弹出窗口中的 2 个。

我敢肯定这是一个结构性的事情,但任何指针都会受到赞赏。

function tree(tree_id, mappos) {
    this.tree_id = tree_id;
    this.mappos = mappos;
}

var mytreelist = [];
mytreelist[0] = new tree(18, "708,290,736,319"),
mytreelist[1] = new tree(272, "134,143,163,172");

for (i = 0; i < mytreelist.length; i++) {

    document.write("<div id = \"" + mytreelist[i].tree_id + "\" > <area class = \"maplink\"     
    shape= \"rect\" coords=\"" + mytreelist[i].mappos + "\" data-role=\"button\" href=\"#\" 
    id=\"" + mytreelist[i].tree_id + "\"/></div>");

    treeid = this.mytreelist[i].tree_id;

    $("#" + treeid).click(function() {
        var win = $("#window").data("kendoWindow");
        thing = this.id;
        alert("tree number " + thing);
        win.center();
        win.open();
    });
 }
    $(document).ready(function() {
        $("#window").kendoWindow({
            height: "400px",
            draggable: false,
            resizable: false,
            title: "Centered Window",
            modal: true,
            visible: false,
            width: "600px",
            content: "check.php?tree_id=" + treeid,
            title: "Async Window Content"
        });
    });

好的。试图在这里简化想法并使用封闭功能。我仍然有同样的问题。我可以访问数组元素 id 但不能访问它的值。

var mytreelist = ['elm', 'oak', 'pine'];

function create() {
    for (var i = 0; i < mytreelist.length; i++) {
    mytreelist[i] = function(tree) {
    var newtree = this.mytreelist.value; //this is not correct?
    return function() {

    alert("tree = " + newtree);

      };
  }(i);
 }
}

function run() {
  for (var i = 0; i < 5; i++) {
  mytreelist[i]();
  }
}

create();
run();    
4

0 回答 0