私は次のコードを書きました:
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);
私の問題は、内側の要素をドラッグし始めたときに始まり、次にドラッグ可能 (childDraggable の親) もドラッグを開始します ( IE8 のみで、以前のバージョンではそうです)。この種のイベントの伝播を防止したいと考えています。つまり、親をドラッグせずに innerElement をドラッグしたいと考えています。
stopPropagationとpreventDefaultを試しましたがダメでした。助けていただければ幸いです。
前もって感謝します。