3

AlertifyJS には、補助ボタンを配置する場所があります。

補助ボタンがクリックされたときに 2 つのことが起こるようにしたい

  1. ダイアログは閉じないでください
  2. いくつかの機能を実行する必要があります

この2つはどうすればいいですか?

3 番目のパラメーターとして渡すことで通知を表示できますが、ダイアログが消えます。また、複数の補助ボタンがあり、それぞれに異なる機能がある場合、これは機能しません。

以下は私のjavascriptで、ここに JSFiddle があります



    // Run this function when the auxiliary button is clicked
    // And do not close the dialog
    var helpInfo = function () {
        alertify.notify("help help help");
    };

    var custom = function () {
        if (!alertify.helper) {
            alertify.dialog('helper', function factory() {
                return {
                    setup: function () {
                        return {
                            buttons: [{
                                text: 'Help',
                                scope: 'auxiliary'
                            }],
                            options: {
                                modal: false
                            }
                        };
                    }
                };
            }, false, 'alert');
        }
        alertify.helper('Do you need help?', "hello world", helpInfo);
    };

    custom();

4

2 に答える 2

1

AlertifyJS コールバックには特別なcloseEventオブジェクトが渡されます。ダイアログを開いたままにするには、コールバックで cancel プロパティをtrueまたはに設定する必要がありますreturn false

var helpInfo = function (closeEvent) {    
   alertify.notify("help help help");    
   closeEvent.cancel = true;
  //or
  //return false;
};

更新されたフィドルを参照してください

于 2015-03-06T18:22:09.947 に答える
0

関数にパラメーターを追加しhelpInfoて、イベントと共に渡される Event オブジェクトにアクセスできるようにします。これで、デフォルトのアクション (ダイアログが閉じます) を防ぐことができます。

var helpInfo = function (e) {
    alertify.notify("help help help");
    e.preventDefault();
};
于 2015-03-06T17:52:47.980 に答える