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 エラーが発生しました: オブジェクト # のプロパティ 'close' は関数ではありません。

この新しいオブジェクト パラメータを関数呼び出しに渡すにはどうすればよいですか?

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 に答える