优化自定义控件的脚本

Optimize javascript of custom controls

本文关键字:脚本 自定义控件 优化      更新时间:2023-09-26

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

示例:

我将 3 个自定义控件放在页面上。每个人都写一个像

ucx.initialize( controlID, settings );

所以我得到...

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"具有相同的设置。

所以我想对它们进行分组:

ucx.initialize(["txtValue1", "txtValue2"], { sync: true, mask: '0 km'});
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});

可能吗?

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

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

var initialize = function (controlID, settings) { 
    ...
    settings = settings || { sync: true, mask: '0 km'};
    ... 
};

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

ucx.initialize("txtValue1");
ucx.initialize("txtValue2");
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});

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

ucx.initializeMultiple = function() {
    var settings = arguments[arguments.length - 1];
    for (var i = 0; i < arguments.length - 1; i++) {
        ucx.initialize(arguments[i], settings);
    }
}

然后,您可以致电:

ucx.initializeMultiple("txtValue1", "txtValue2", { sync: true, mask: '0 km'});

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


请记住,设置不必是内联的。 如果不创建此新方法,您也可以只执行此操作以避免重复设置:

var settings1 = { sync: true, mask: '0 km'};
ucx.initialize("txtValue1", settings1);
ucx.initialize("txtValue2", settings1);