2

我在 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')

这可能吗?

4

1 回答 1

2

你没有命名空间,你有一个包含函数的对象文字(现在你编辑了它,并添加了一个 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-01-09T13:03:33.207 回答