Tôi đang sử dụng thuộc tính html5 'draggable' để kéo 2 phần tử trong vùng chứa và dòng svg để kết nối hai. Sau khi kết nối, kéo Div đầu tiên sẽ vẽ lại đường kết nối svg (tôi thực hiện trên sự kiện kéo lên bằng cách gọi hàm 'handleDragOver'). Nhưng nếu bạn kéo div đầu tiên nhanh hơn, sự kiện thả không được kích hoạt và div duy trì vị trí ban đầu của nó trong khi dòng được vẽ.Sự kiện thả của HTML5 có thể kéo không được kích hoạt không liên tục do thao tác DOM trong sự kiện kéo lên
function handleDragOver(e) {
if (e.preventDefault) {
e.preventDefault();
}
//Some code doing DOM computation and manipulation
}
return false;
//e.dataTransfer.dropEffect = 'move';
}
Làm cách nào để đảm bảo sự kiện thả được kích hoạt mọi lúc.
Xin lưu ý:
- tôi không thể sử dụng bất kỳ khuôn khổ, chỉ đơn giản javascript
- tôi không thể không vẽ lại dòng trong khi kéo.
- chức năng kéo hoạt động tốt khi tôi không làm bất kỳ tính toán/vẽ lại trong 'handleDragOver'
Đây là mã: http://jsfiddle.net/bhuwanbhasker/3yx9ds4m/1/