over
및 out
이벤트가이 옵션을 트리거한다고 생각하지만 아직 테스트 할 수있는 draggable이없는 droppable을 사용해야합니다. accept
옵션을 사용하여 집에서 만든 draggable을 선택할 수 있으며 droppable은 그에 맞게 처리해야합니다.
$(".myDroppable")
.droppable({
hoverClass: "droppableStyle",
accept: ".homeMadeDraggable"
});
정확히 무엇이 일어나는지 말하기는 어렵지만 코드를 보지 않아도됩니다. 의 소스 코드를보고 api과 함께 표면 아래에서 일어나는 일과 그 사건이 작동하는지 여부를 명확히해야합니다.
_over: function(event) {
var draggable = $.ui.ddmanager.current;
if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
if (this.options.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
this._trigger('over', event, this.ui(draggable));
}
},
_out: function(event) {
var draggable = $.ui.ddmanager.current;
if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
if (this.options.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
this._trigger('out', event, this.ui(draggable));
}
},
감사! 이것은 확실히 질문의 측면에서 작동하므로 이것은 좋은 정보입니다. 열쇠였던 것은 '수락'옵션이었습니다. 아아, 내 문제는 DIY draggables로 수행 한 터치를 통해 이중 draggables를 활성화하는 것과 관련이 있지만, 아 래로 Droppables는 같은 방식으로 나타납니다. 동시 드롭을 처리하도록 설정되지 않았습니다. 오 잘. –
두 개의 draggables를 처리 할 수 있어야합니다. 'accept' 옵션은 이것을 처리하기 위해 함수 콜백을 취할 수 있습니다 - [Dropable에서 여러 항목을 받아들이는 법] (http://jquery.10927.n7.nabble.com/How-to-accept-multiple-items-in -a-quot-Droppable-quot-element-td138053.html). 그냥 "터치를 통한 이중 draggables"라고 할 때 두 개의 손가락으로 동시에 끌린 두 개의 항목을 의미합니까? – catch22
예, 목표가되었습니다 ... 동시에 두 개의 분리 가능한 draggables가 있습니다. 아쉽게도 jQuery UI가 마우스 이벤트에 의존하는 것이 원인입니다. 터치 펀치는 여전히 터치를 마우스 이벤트로 변환하며, jQuery 또는 브라우저 자체가 하나의 마우스 커서 만 인식합니다. 나는 'draggableTouch.js'로 드래그 부분에 대한 해결책을 찾았습니다. 이제는 내 자신의 droppable 논리를 조절할 필요가있는 것처럼 보입니다. –