在过去的 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();