【问题标题】:Attach behaviour to namespace calling in Javascript?将行为附加到 Javascript 中的命名空间调用?
【发布时间】:2016-04-14 02:55:48
【问题描述】:

我在 Javascript 方面非常平庸,环顾四周,我找不到任何关于如何实现我想要的行为或什至可能的信息。

我有一个命名空间 form 来访问我的 HTML 表单:

var form = (function(){
    all   = function () $('#myform .entry');
    first = function () $('#myform .entry').first();
})();

form.all.css('color', 'blue');
form.first.css('color', 'red');

期望的额外行为:

form.css('background-color', 'green'); // should be calling $('#myform')

这可能吗?

【问题讨论】:

    标签: javascript jquery namespaces attachedbehaviors


    【解决方案1】:

    你没有命名空间,你有一个包含函数的对象字面量(现在你编辑了它,并添加了一个 IIFE,这更没有意义),函数必须返回可以使用的东西

    var form = {
        all : function () {
            return $('#myform .entry');
        },
        first : function () {
            return $('#myform .entry').first();
        }
    }
    
    form.all().css('color', 'blue');
    form.first().css('color', 'red');
    

    或者如果你想将集合存储在一个对象中而不是每次都在 DOM 中查找

    var form = $('#myform');
    
    form.all   = $('#myform .entry');
    form.first = $('#myform .entry').first();
    
    form.all.css('color', 'blue');
    form.first.css('color', 'red');
    

    【讨论】:

      猜你喜欢
      • 2016-11-25
      • 2013-07-19
      • 2016-09-22
      • 2013-02-01
      • 2013-03-15
      • 2011-01-23
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      相关资源
      最近更新 更多