3

私は次のコードを書きました:

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 をドラッグしたいと考えています。

stopPropagationpreventDefaultを試しましたがダメでした。助けていただければ幸いです。

前もって感謝します。

4

1 に答える 1