9

Trong số plunk Tôi có giao diện người dùng góc với thanh tiêu đề có thể kéo được. Khi bạn kéo thanh, toàn bộ phương thức di chuyển. Vấn đề là nếu tôi di chuyển con chuột tương đối nhanh lên và xuống, con trỏ sẽ mất tiêu điểm trên thanh và các phương thức dừng di chuyển. Bất kỳ ý tưởng làm thế nào để sửa lỗi này? Bất kỳ phương pháp nào khác cũng được chào đón.Mô-đun giao diện góc có thể kéo được Mất tiêu điểm

HTML

<body ng-app="app" ng-controller="ctl"> 

    <script type="text/ng-template" id="myModalContent.html"> 
     <div class="topbar">This is the title</div> 

     <div class="modal-header"> 
      <h3 class="modal-title" id="modal-title">I'm a modal!</h3> 
     </div> 


     <div class="modal-footer"> 
      <button class="btn btn-primary" type="button" ng-click="ok()">OK</button> 
     </div> 
    </script> 

    <button type="button" class="btn btn-default" ng-click="open()">Open me!</button> 

    </body> 

Javascript

var app = angular.module("app", ['ui.bootstrap']); 
app.controller("ctl", function($scope,$uibModal,$timeout) { 

    var modalInstance; 
    $scope.open = function() { 
    modalInstance = $uibModal.open({ 
      animation: false, 
      windowClass: 'the-modal', 
      templateUrl: 'myModalContent.html' 
     }); 

     $timeout(function(){ 
      $('.modal-content').draggable({ 
      drag: function(event, ui) { 
       if(event.toElement.className.indexOf("topbar") == -1) return false; 
      } 
      });    
     },10); 

    }; 

}); 
+0

Tôi chạy lên Plunker và nó hoạt động rất kỳ lạ - như nó mất kéo tại một số điểm. Mã quá đơn giản nên không thể có gì sai. Tôi bối rối :( – Mikkel

Trả lời

7

Để giải quyết vấn đề sử dụng draggable một cách chính xác. Để kéo vùng chứa theo yếu tố được chỉ định, hãy sử dụng handle.

Thay vì:

$('.modal-content').draggable({ 
    drag: function(event, ui) { 
     if(event.toElement.className.indexOf("topbar") == -1) return false; 
    } 
}); 

Sử dụng:

$('.modal-content').draggable({ handle: ".topbar" }); 

Xem cập nhật Plunker

Các vấn đề liên quan