2016-01-09 63 views
2

我在Javascript中很平庸,環顧四周,我無法找到任何有關如何實現我想要的行爲的信息,或者甚至有可能。將行爲附加到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') 

這可能嗎?

回答

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'); 
仰視
相關問題