2016-07-29 9 views
0

ユーザがダイアログのサイズを変更すると、POSTは何十回も実行されていません。ユーザーがマウスボタンを離すまで$。postを実行しないようにする方法はありますか?サイズ変更後の実行ポスト(ウィンドウがリサイズされるにつれて繰り返しはありません)

dialogClass: 'fixed-dialog', 
    resize: function(event, ui) { 
    $(this).dialog("option", 
     ui.size.height + " x " + ui.size.width); 
    $.post("savelayout.php", { 
     menuheight: ui.size.height, 
     menuwidth: ui.size.width 
    }); 
    } 

編集:更新されたコードが機能しないため、削除されました。

+0

http://alvarotrigo.com/blog/firing-resize-event-only-once-when-resizing-is-finished/ –

答えて

0

私の解決策は、100msの間に別のサイズ変更が試行されたかどうかを確認しようとします。ポストコードを実行しない場合。

var act; 
dialogClass: 'fixed-dialog', 
    resize: function(event, ui) { 
    clearTimeout(act); 
    act = setTimeout(function() { 
     $(this).dialog("option", 
     ui.size.height + " x " + ui.size.width); 
     $.post("savelayout.php", { 
     menuheight: ui.size.height, 
     menuwidth: ui.size.width 
     }); 
    }, 100); 
    }; 

はまたjQueryプラグインがあります:https://github.com/nielse63/jquery.resizeendあなたは、このようなアプローチをしたい場合。

+0

なので、何らかの停止機能を使用する方法はありません。私はタイマーを使いません。 – michelle

+0

いいえ..私は気づいていません。 100msと言ってチェックインするのがベストです。 – Iceman

+0

@michelleあなたが望むことをするためのjqueryプラグインがあります。 – Iceman

関連する問題