2009-07-30 101 views
3

我想實現類似下面的,但不知道什麼是錯:jQuery插件的公共方法/函數

$.a = function() { 

// some logic here 

function abc(id) { 
    alert('test'+id); 
} 


} 

$.a.abc('1'); 

我嘗試使用返回功能,但似乎沒有擦出火花。有人可以請幫助。

謝謝你的時間。

回答

9

由於$.a必須在自身的函數,你必須爲屬性添加abc功能將$.a功能:

$.a = function() { 
    // some logic here... 
}; 

$.a.abc = function (id) { 
    alert('test' + id); 
}; 

如果abc必須從$.a函數中定義,你可以請執行下列操作。請注意,使用此方法調用之前,$.a.abc將不可用!在函數被調用之前,函數內部沒有任何內容被評估。

$.a = function() { 

    // Do some logic here... 

    // Add abc as a property to the currently calling function ($.a) 
    arguments.callee.abc = function (id) { 
     alert('test' + id); 
    }; 
}; 

$.a(); 
$.a.abc('1'); 
+0

,但我希望它是一個函數內的功能。我無法改變$ .a的結構。 – 2009-07-30 06:49:12

1
$.a = (function(){ 
    var a = function() { 
     //... 
    }; 
    a.abc = function() { 
     //... 
    } 
    return a; 
})();