【问题标题】:JavaScript/jQuery short hand function definitionsJavaScript/jQuery 简写函数定义
【发布时间】:2010-04-11 07:20:58
【问题描述】:

我正在使用一个 jQuery 插件,它的功能定义如下:

    $('#mydiv').pluginAction({
        someproperty: val, 
        format: 'mm hh',
        labels: ['yes', 'no', 'maybe'], 
        labels1: ['never', 'always']
    });

在我的 HTML 页面中,我有多个 DIV,它们对于 formatlabelslabels1 具有相同的属性,但对于 someproperty 具有不同的值。是否有某种类型的 JavaScript 表示法我可以利用来缩短定义,这样我就不必有重复的代码?

【问题讨论】:

  • 一些插件允许你发送一个对象字面量来替换插件的默认值。您可以将其用于不改变的值。

标签: javascript jquery notation


【解决方案1】:

有几种方法可以解决这个问题:

  1. 创建一个填补空白的函数;或

  2. 如果插件是您的,请将这些值默认为您想要的值。

(1)的例子:

function props(val) {
  return {
    someproperty: val,
    format: 'mm hh',
    labels: ['yes', 'no', 'maybe'], 
    labels1: ['never', 'always']
  };
}

$("#mydiv").pluginAction(props("..."));

【讨论】:

    【解决方案2】:

    Cletus 有一个非常好的答案,它可以让您生成非常易读的代码。这可能是您的最佳解决方案。

    仅作记录,类似以下的内容也是可能的。您可以创建一个对象文字来存储所有固定属性,然后在需要时使用jQuery#extend 指定添加额外属性(例如您的示例中的someProperty)。

    var props = {
     format: 'mm hh',
     labels: ['yes', 'no', 'maybe'], 
     labels1: ['never', 'always']
    };
    
    $('#mydiv').pluginAction($.extend(props, { someProperty: val }));
    

    【讨论】:

      【解决方案3】:

      复制这种代码并没有错。它实际上清楚地表明了给定的 div 应用了什么样的行为。但是,如果您说的是数百个重复项,请使用其他人的建议。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多