【问题标题】:Optimize javascript of custom controls优化自定义控件的javascript
【发布时间】:2012-08-10 18:57:19
【问题描述】:

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

示例:

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

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'});

有可能吗?

【问题讨论】:

    标签: c# javascript asp.net web custom-controls


    【解决方案1】:

    这完全取决于您的 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'});
    

    【讨论】:

      【解决方案2】:

      您可以创建自己的类似方法:

      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-26
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 2020-03-05
        相关资源
        最近更新 更多