Событие пожара, когда перетаскивание jQuery Splitter прекращается

Я использую плагин jQuery Splitter от https://github.com/jcubic/jquery.splitter. Сплиттер работает отлично. Мне нужно знать, как я могу запустить какое-то событие, как только я остановлю перетаскивание сплиттера. Мне нужно сохранить новое положение левого сплиттера в фоновом режиме и использовать его в следующий раз.

mouseup, события mousemove не работают должным образом. Ниже приведен метод, который я попробовал. Работает только при щелчке мышью по сплиттеру без его перетаскивания (щелчок мышью в той же позиции). Как только вы перетащите сплиттер, это не работает.

      jQuery('.vspliter').on("mouseup", function (e) {
            alert('Mouse is released now');
                    // call ajax function over here
      });

Дайте мне знать, если потребуется дополнительная информация.

2 ответа

Решение

Я могу решить эту проблему с помощью кода ниже, обнаружив перетаскивание:

       var isDragging = false;
       jQuery('.spliter_panel').mousedown(function() {
           jQuery('.spliter_panel').mousemove(function() {
               isDragging = true;
               jQuery('.spliter_panel').unbind("mousemove");
           });
       });
       jQuery('.spliter_panel').mouseup(function() {
           var wasDragging = isDragging;
           isDragging = false;
           jQuery('.spliter_panel').unbind("mousemove");
           if (wasDragging) {
                //Call Ajax method
           }
       });

Настройки для обработчиков поверхности разделителя уже для onDragStart, onDragEnd и onDrag, поэтому я смог получить информацию о положении просто:

 $('.MySplitter').split({
     orientation: 'vertical',
     limit: 10,
     onDragEnd: getSplitterLocation
 });

 function getSplitterLocation(e) {
     console.log(e);  // jQuery.Event
 }

Может быть, это было добавлено в сплиттер после того, как был задан оригинальный вопрос...

Другие вопросы по тегам