首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将变量绑定到此

将变量绑定到此
EN

Stack Overflow用户
提问于 2015-04-18 01:04:01
回答 1查看 54关注 0票数 1

我正在创建一个简单的jQuery插件,但在模块化方面遇到了问题。

例如:

代码语言:javascript
复制
$.fn.testMethod = function(option1, option2) {
    var something1 = option1;
    var something2 = option2;
};

当我有多个元素使用这个方法时,我的问题就开始出现了。例如:

代码语言:javascript
复制
$('.element1').testMethod(1, 2);
$('.element2').testMethod(3, 4);

如果我要改变周围的东西,第二个元素最终会使用第一个元素的变量。有什么更好的方法可以做到这一点,并将变量锁定到它们正在使用的特定元素?如果这太模糊了,我可以粘贴我的完整代码,但它有点复杂。

EN

回答 1

Stack Overflow用户

发布于 2015-04-18 01:05:59

在使用jQuery插件时,您通常希望执行一个each循环并返回集合。

这也意味着您不能只使用简单的变量,但这正是jQuery的data派上用场的地方。

代码语言:javascript
复制
$.fn.testMethod = function(option1, option2) {

    return this.each(function() {
        $(this).data('something1', option1);
        $(this).data('something2', option2);

        // do stuff

        var something =  $(this).data('something1'); // etc
    });

};

另一方面,函数中的参数和变量对于每个函数调用都是唯一的,所以第二次函数调用不可能使用第一次调用中的变量,除非您正在做其他奇怪的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29705373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档