Карта внутри bootstrap сортируемый элемент - прекратить перетаскивание - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть элементы, обрабатываемые Bootstrap сортируемыми плагинами (x_panels), и внутри одного из них есть элемент, содержащий карту. Карта управляется перетаскиванием, как и сортируемые элементы. Поэтому, когда я пытаюсь перетащить карту, запускается событие сортировки, и я перемещаю всю панель. Мой вопрос, как предотвратить сортировку при перетаскивании внутри карты? Я пытался сделать контейнер панели ручкой, но он не работал вообще. Я также пытался прикрепить обработчик к mousedown и dragstart событиям на карте и сделал preventDefault() и stopPropagation(), но это также не помогло.

Есть идеи, как с этим справиться?

контейнер HTML:

<div id="widget-container" class="row">
<div class="col-xs-12 col-sm-6 widget-holder" id="x17">
<div class="x_panel">
    <div class="x_title">
        <h2><i class="fa fa-area-chart"></i> Title
            <small id="date-from-to">
            </small>
        </h2>
        <ul class="nav navbar-right panel_toolbox" style="min-width: auto">
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="modal" data-target="#modal-filter-{$data->id_widget_person}" role="button" aria-expanded="false">
                    <i class="fa fa-calendar"></i>
                </a>
            </li>
        </ul>
        <div class="clearfix"></div>
    </div>
    <div class="x_content">
        <!-- This is the map container -->
        <div id="map-container" class="gmap"></div> 
      </div>
    </div>
  </div>
</div>

#widget_container содержит все сортируемые элементы.

Сортируемый обработчик:

$("#widget-container").sortable({
                            containerSelector: "#widget-container",
                            itemSelector: ".widget-holder",
            placeholder: "col-sm-3 widget-placeholder",
                            start: function(e, ui) {
                                ui.placeholder.height(ui.item.height);
                                ui.placeholder.width(ui.item.width);
                            },
            stop: function (event, ui) {
                var data = $("#widget-container").sortable("toArray");
                                    console.log(data);
                $.ajax({
                    type: 'POST',
                    url: '/url.php',
                    data: {
                        data: data
                    },
                    success: function(res) {
                    }
                });
            }
        }).disableSelection();

1 Ответ

0 голосов
/ 28 февраля 2020

Я уже разобрал его, сделав x_title ручкой, ширина панели которой составляет 100%, поэтому я могу перемещать панель только, взяв ее верхнюю часть, чего мне вполне достаточно. Если у вас все еще есть ответ на эту конкретную проблему c, не стесняйтесь опубликовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...