JQuery UI Draggable Modal

时间:2015-02-20 13:36:36

标签: jquery asp.net-mvc twitter-bootstrap jquery-ui

我有一个带拖动功能的模态。它工作正常,但当我关闭并重新打开模态时,它会保留其最后位置。例如,如果我将模态拖动到窗口底部并将其关闭,当我重新打开窗口底部的模态时。我需要它集中,因为这是它第一次发布。我在这里使用JQuery UIBootstrap

这是我的代码:

<div class="outerContainer">
....
....
        <!-- Modal -->
            <div class="modal fade" id="alertModal" tabindex="-1" role="dialog" aria-labelledby="alertModalLabel" aria-hidden="true">
                <div class="modal-dialog" id="contentModal">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                            <h4 class="modal-title" id="alertModalLabel">Add Alert</h4>
                        </div>
                        <div class="modal-body">
                            <div class="container-fluid">
                                @Html.Partial("~/Views/Shared/Maintenance/_AddAlert.cshtml", Model.AlertViewModel);
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                            <button type="button" class="btn btn-primary">Save changes</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    <script>
     $(function () {
            $("#alertModal").draggable({
                handle: ".modal-header",
                scroll: false,
                containment: '#outerContainer'
            });
        });
    </script>

1 个答案:

答案 0 :(得分:1)

当您关闭/打开它时,您可以挂钩进入模态事件并相应地重新定位:

$('#alertModal').on('hidden.bs.modal', function (e) {
    // reposition modal according to window / viewport here
});

请参阅bootstrap docs讨论挂钩事件的地方。

HTH