3

htmlフォームのコンテンツを内部に配置するモーダルダイアログがあります。フォームには送信とキャンセルのボタンがあります。キャンセルボタンを見つけたり、xをゆっくり押してダイアログを閉じたりしています。ほんの数秒遅すぎますが、クレイジーなマウスクリッカーがおかしくなるかもしれないという問題があると考えるのに十分な長さです。

私がしていることよりも、閉じる関数を使用するためのより良い方法と、変更をキャンセルするためのより良い方法はありますか?

var $dialog = $('#cameraform').dialog({
    modal:true,
    autoOpen: false,
    resizable:false,
    width: 625,
    close: function() {
        $(this).dialog('close'); //this is slow
    }
}); //init dialog

//events            
$('.addwebcam').click(function(e) {
    $dialog.dialog('open');
});

$(".cancel_changes").click(function() {
    $dialog.dialog('close');    //this is slow
});

HTML:

<button class="addwebcam">Add Webcam</button>
<div id="cameraform" title="Add a camera">
...//my form
<button type='button' class='cancel_changes' name='cancel_changes' value='Cancel'>Cancel</button>
</div>

ここでできる最適化はありますか?前もって感謝します。

4

1 に答える 1

5

ダイアログ設定のcloseイベントからclose呼び出しを取り除きます。

var $dialog = $('#cameraform').dialog({
    modal:true,
    autoOpen: false,
    resizable:false,
    width: 625,
    close: function() {
      //  $(this).dialog('close'); //this is slow
    }
}); //init dialog

それ自体の内部からcloseイベントを呼び出しているため、呼び出しスタックがオーバーフローします。

于 2012-06-22T19:54:07.880 に答える