2013-06-05 3 views
3

: 나는 다음 드래그 (childDraggable의 부모)도 드래그 시작 주위의 내부 요소를 끌기 시작할 때GWT 쿼리 - 중첩 드래그 전파 나는 다음과 같은 코드를 작성했습니다

HorizontalPanel draggable = new HorizontalPanel(); 
Function startDragParent = new Function() { 
    @Override 
    public boolean f (Event e) { 
    // some code here... 
    return false; 
} 
}; 
Function dragParent = new Function() { 
    @Override 
    public boolean f (Event e) { 
    // some code here... 
    return false; 
} 
}; 
Function stopDragParent = new Function() { 
    @Override 
    public boolean f (Event e) { 
    // some code here... 
    return false; 
} 
}; 
$(draggable).as(Ui).draggable() 
    .bind(Draggable.Event.start, startDragParent); 
    .bind(Draggable.Event.drag, dragParent); 
    .bind(Draggable.Event.stop, stopDragParent); 

HorizontalPanel childDraggable = new HorizontalPanel(); 
Function dragChild = new Function() { 
    @Override 
    public boolean f (Event e) { 
    // some code here... 
    return false; 
} 
}; 
$(childDraggable).as(Ui).draggable().bind(Draggable.Event.drag, dragChild); 

// finally I add one element inside another 
draggable.add(childDraggable); 

내 문제는 시작을 (만 IE8에서는 이전 버전 인에서와 같음). 이런 종류의 이벤트 전파를 방지하고 싶습니다. 즉, 부모를 드래그하지 않고 innerElement를 드래그하려고합니다.

나는 인 stopPropagation에게로 preventDefault을 tryied했지만 그것은 좋은 없었다. 도움을 주시면 감사하겠습니다.

미리 감사드립니다.

+1

어떤 버전을? –

+1

GWT, gwt-query 1.1.0 및 gwt-query-ui의 릴리스 146에 2.4를 사용하고 있습니다. 그러나 나는 변화하는 버전이 선택권이 아닐 것이라고 두려워합니다. IE8에서 jquery를 사용하는 것과 관련이있을 수 있지만, 단지 느낌 일뿐입니다. –

+1

아 좋아, 나는 gwtquery + gwtquery-dnd (둘 다 자바로 작성되었고 외부 js는 필요 없다)를 사용하고 있다고 생각했다. Gwtquery-ui는 jquery.js를 필요로하는 jquery-ui.js의 래퍼이므로 설치가 꽤 복잡합니다. 불행히도 나는이 플러그인을 사용하지 않기 때문에 나는 도울 수 없다. 어쩌면 jsquery-ui 목록에서 도움을 얻을 수 있습니다. –

답변

0

인 stopPropagation가 IE에서 작동하지 않습니다, 당신은 다음과 같은 방식으로 cancelBubble 같은 것을 사용한다 : GWT, gwtquery와 GWT-드래그 사용중인의

function stop(e) { 
    // feature check (in IE this will be undefined) 
    if (e.stopPropagation) { 
     // standards compliant browser 
     e.stopPropagation(); 
    } else { 
     // dreadful IE 
     e.cancelBubble = true; 
    } 
} 
관련 문제