0

ページの読み込み時にダイアログを定義しました。ダイアログが表示され、これまでのところすべて問題ないようです。

dlg1 = $("#modalHolder");
dlg1 = dlg1.dialog({
    width: 300,
    height: 150,
    modal: true,
    autoOpen: false,
    resizable: false,
    closeOnEscape: false,
    draggable: false,
    overlay: {
        backgroundColor: 'red',
        opacity: 0.65
    },
    open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});

クローズイベントを動的に設定したいので、これを試しました:

function setCloseFunction(fun)
{
    dlg1.dialog({
        close: function(event, ui)
        {
          alert("2");
          fun();
        }
    });
}

そして、私はそれを次のように呼びます:

setCloseFunction(new Function("alert('1')"));

ただし、ダイアログを閉じると、アラートは表示されません。何か案は?

4

2 に答える 2

1

次のように記述します。

dlg1.bind('dialogclose', function(event, ui) {
    alert("2");
    fun();
});

setCloseFunction(function() { alert('1'); });

EDIT : 関数を削除するには、 を呼び出すことができますunbind('dialogclose')

于 2009-12-29T16:34:54.030 に答える
1

で使用される構文setCloseFunctionは、ダイアログを初期化する場合にのみ正しいものです。あなたの場合のように、ダイアログが既に存在する場合は、通常、次のようにオプションを変更します。

dlg1.dialog('option', optionName, value);

などのイベントのclose場合、リスナーをそれにバインドします。

dlg1.bind('dialogclose', function(event, ui) {
  ...
});
于 2009-12-29T16:37:05.120 に答える