目前我遇到了一些逻辑问题。 假设我有一个对象,我为我的tileengine存储了几个mapdata,以及一个jQuery扩展,用于计算所点击的tile的x和y位置。
$(document).ready(function(){
var mapdata = {
dimensions: {x: 10, y: 10},
tileSize: 32
};
$.fn.getpos = function(type){
var xpos = $(this)%mapdata.dimensions.y;
var ypos = Math.floor($(this)/mapdata.dimensions.y);
else if(type == 'x')
return xpos;
else if(type == 'y')
return ypos;
else
return {x: xpos, y:ypos}
}
$('.tile').click(function(){
console.log($($(this).index('.tile')).getpos());
});
});
问题很清楚。我正在尝试访问在getpos()范围内不可用的mapdata对象。有没有办法可以实现这个目标?否则我需要将mapdata传递给我将要制作的每个扩展名。
提前谢谢你。 诚恳, 托马斯
答案 0 :(得分:2)
当你定义getpos()函数时,它会在同一时刻继承范围,因此现在定义的mapdata应该是可见的。
在getpost()中尝试console.log($(this))。可能它具有您对数学运算不期望的价值。
答案 1 :(得分:1)
设置全局变量时,会将其分配给窗口对象。试试window.mapdata
。