javascript - 跨 jQuery 插件共享 Javascript 对象

标签 javascript jquery jquery-plugins

目前我遇到了一些逻辑问题。 假设我有一个对象,其中为我的图 block 引擎存储多个 map 数据,以及一个计算单击图 block 的 x 和 y 位置的 jQuery 扩展。

    $(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 对象。我有办法完成这个吗?否则,我需要将 map 数据传递给我要制作的每个扩展。

提前谢谢您。 真诚的, 托马斯

最佳答案

当您定义 getpos() 函数时,它会同时继承作用域,因此现在定义的 Mapdata 应该对其可见。

尝试在 getpost() 中使用 console.log($(this)) 。也许它具有您在数学运算中意想不到的值(value)。

关于javascript - 跨 jQuery 插件共享 Javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12747987/

相关文章:

javascript - 生成 PDF 时,Puppeteer 不会加载本地存储的图像

c# - 通过 ajax 调用将表单值发布到 C# WebMethod

php - 用于在数据库中插入查询的简单 Jquery 函数

javascript - 在 mouseenter 上的 jQuery 插件中访问 DOM 元素

php - Javascript:如何使用服务器上的html文件而不是URL来window.open?

javascript - 使用 javascript 动态显示/隐藏返回顶部按钮

javascript - 自制的jQuery插件已触发但不起作用

jquery - Facebook 风格的 JQuery 自动完成插件

javascript - 将路径作为参数传递给 JS 函数

javascript - d3.js 中的函数,用于从不同大小的 JSON 源创建开始和结束节点以及节点和链接文本