2013-10-15 68 views
0

我已經繼承了我公司中沒有人使用的舊代碼庫。有一個jquery插件正在使用,最少的文檔。這裏是我需要的部分:如何將特定屬性傳遞給函數中的JavaScript對象

/** 
* @param {String} message  This is the message string to be shown in the popup 
* @param {Object} settings  This is an object containing all other settings for the errorPopup 
* @param {boolean} settings.close Optional callback for the Okay button 
* @returns a reference to the popup object created for manual manipulation 
*/ 
Popup.errorPopup = function(message , settings){ 

    settings = settings || {}; 

    var defaults = { 
        allowDuplicate: false, 
        centerText: true, 
        closeSelector: ".ConfirmDialogClose" 
        } 

    settings = $.extend(defaults , settings); 

    return Popup.popupFactory( message, 
           settings, 
           ".ConfirmDialogBox", 
           ".PopupContent" 
          ); 

} 

我們目前調用這個函數只是使用默認設置;他們沒有經過例東西:

Popup.errorPopup('Sorry, your account couldn\'t be found.'); 

對於一個使用這個,我需要一個回調函數來傳遞的,當彈出關閉。根據評論,有一個settings.close參數,但我不知道如何去通過函數調用傳遞它。

我嘗試這樣做:

Popup.errorPopup('Sorry, your account couldn\'t be found.', {close: 'streamlinePassword'}); 

其中streamlinePassword是回調函數的名稱。

但是得到了一個javascript錯誤:屬性'關閉'的對象#不是一個函數。

如何將這個新的對象參數傳遞給函數調用?

+0

您是否嘗試過使用'{收盤:streamlinePassword}',不包括引號? –

回答

0

不要傳遞字符串,傳遞函數。

樣品:

function streamlinePassword() { 
// ... 
} 

Popup.errorPopup('...', {close: streamlinePassword}); 

// also possible 
Popup.errorPopup('...', { 
    close: function() { 
    } 
}); 

// also possible II 
Popup.errorPopup('...', { 
    close: function test() { 
    } 
}); 
+0

謝謝!就是這樣。 – EmmyS

相關問題