不确定我应该给这个标题,但我遇到了一个问题,我正在努力。
我正在处理涉及在地图上绘图的项目,地图有不同的房间,每个房间都有不同的大小。在选择新房间时,地图应调整大小。我将所有大小存储在我在jquery顶部创建的数组中。它基本上会在页面加载时进行重新缩放,因为你必须选择一个你想要开始的房间,这个重新缩放的工作应该如此,所以我将该代码复制到函数中,但它似乎不想在那里工作。
我用来建造房间的数组:
var hal1 = { id: 1, x: '0', y: '0', width: '114', height: '81', hal: 'Brabanthal'};
var hal2 = { id: 2, x: '0', y: '0', width: '33', height: '60', hal: 'Kempenhal'};
var hal3 = { id: 3, x: '0', y: '0', width: '87', height: '66', hal: 'Langstraathal'};
var hal4 = { id: 4, x: '0', y: '0', width: '42', height: '47', hal: 'Diezehal'};
var hal5 = { id: 5, x: '0', y: '0', width: '72', height: '57', hal: 'Peelhal'};
var hallen = [ hal1, hal2, hal3, hal4, hal5 ];
这是我用来在页面加载时重新缩放的代码
var hal = getUrlVars()["hal"];
if(typeof(hal) === 'undefined') hal=1;
var items = $.grep(hallen, function(x) {
return x.id == hal
})
$(document).ready( function() {
$.map(items, function(itemhal) {
halw = itemhal.width;
halh = itemhal.height;
$('#mapDrag').width((Math.round(gridStand)*halw)*2).height((Math.round(gridStand)*halh)*2);
});
});
以上所有代码都能完美运行,它只是下一个无法使用的功能。人们可以在点击它时从下拉菜单中选择一个不同的房间,它发送房间的id(项目)并运行该功能用它。然后它将所有新数据加载到div mapdrag中,然后它应该重新调整到数组中给定的大小,它与初始页面加载时的id匹配。
无法工作的功能:
function changeHal(item) {
if (hal != $(item).attr('halNr')) {
hal = $(item).attr('halNr');
var halXhr = jQuery.ajax({
type: "POST",
url: "ajax/hal.php",
data: 'hal=' + hal,
cache: false,
success: function (response) {
var items = $.grep(hallen, function (x) {
return x.id == hal
})
$.map(items, function (itemhal) {
halw = itemhal.width;
halh = itemhal.height;
$('#mapDrag').width((Math.round(gridStand) * halw) * 2).height((Math.round(gridStand) * halh) * 2);
});
}
});
}
}
感觉它的功能非常简单,但我似乎无法让它发挥作用。
这里有一个jsFiddle,里面有它的基础知识。正如您在加载时可以看到的那样,它会以正确的大小缩放div,但是在下拉列表中选择不同的房间时,它不会调整大小。 jsFiddle:http://jsfiddle.net/gujPK/