首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化自定义控件的javascript

优化自定义控件的javascript
EN

Stack Overflow用户
提问于 2012-08-14 21:13:42
回答 2查看 93关注 0票数 2

有没有办法对具有相同设置的自定义控件的javascript进行分组?

例如:

我在一个页面上放置了3个自定义控件。每个人都像这样编写一个javascript

代码语言:javascript
复制
ucx.initialize( controlID, settings );

所以我得到..。

代码语言:javascript
复制
ucx.initialize("txtValue1", { sync: true, mask: '0 km' });
ucx.initialize("txtValue2", { sync: true, mask: '0 km' });
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});

正如我们所看到的,"txtValue1“和"txtValue2”具有相同的设置。

因此,我想将它们分组:

代码语言:javascript
复制
ucx.initialize(["txtValue1", "txtValue2"], { sync: true, mask: '0 km'});
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});

有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-14 21:18:07

这完全取决于您的initialize函数的作用。

至少,您可以使用默认的公共设置对象:

代码语言:javascript
复制
var initialize = function (controlID, settings) { 
    ...
    settings = settings || { sync: true, mask: '0 km'};
    ... 
};

然后,如果在不传递设置对象的情况下调用该函数,则默认使用通用的设置对象:

代码语言:javascript
复制
ucx.initialize("txtValue1");
ucx.initialize("txtValue2");
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});
票数 0
EN

Stack Overflow用户

发布于 2012-08-14 21:27:19

您可以创建自己的方法,其工作方式类似:

代码语言:javascript
复制
ucx.initializeMultiple = function() {
    var settings = arguments[arguments.length - 1];
    for (var i = 0; i < arguments.length - 1; i++) {
        ucx.initialize(arguments[i], settings);
    }
}

然后,您可以调用:

代码语言:javascript
复制
ucx.initializeMultiple("txtValue1", "txtValue2", { sync: true, mask: '0 km'});

您可以在参数中放入任意数量的字段名。最后一个参数是设置对象。它之前的所有参数都被解释为字段名,每个字段名都应该获得该设置。

请记住,设置不必是内联的。在不创建这个新方法的情况下,您也可以这样做,以避免重复设置:

代码语言:javascript
复制
var settings1 = { sync: true, mask: '0 km'};
ucx.initialize("txtValue1", settings1);
ucx.initialize("txtValue2", settings1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11953065

复制
相关文章

相似问题

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