0

我继承了我公司没有人使用过的旧代码库。使用了一个 jquery 插件,文档很少。这是我需要的部分:

/**
 * @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 错误:对象 # 的属性“关闭”不是函数。

如何将这个新对象参数传递给函数调用?

4

1 回答 1

0

不要传递字符串,传递函数。

样品:

function streamlinePassword() {
 // ...
}

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

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

// also possible II
Popup.errorPopup('...', {
  close: function test() {
  }
});
于 2013-10-15T16:46:11.637 回答