目前,我遇到了一个逻辑上的问题。
假设我有一个对象,其中存储了我的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))。它可能具有数学运算所没有的价值。

07-24 22:02