目前,我遇到了一个逻辑上的问题。
假设我有一个对象,其中存储了我的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对象。有没有办法可以做到这一点?否则,我需要将地图数据传递给我要进行的每个扩展。
先感谢您。
真诚的
汤玛士
最佳答案
定义getpos()函数时,它会同时继承作用域,因此现在定义的mapdata应该对它可见。
尝试在getpost()中使用console.log($(this))。它可能具有数学运算所没有的价值。