tags:

views:

88

answers:

0

Hi Folks,

I was wondering if anyone was aware of an example that shows multiple listeners to the YUI DDProxy, DD, or DDTarget onDragDrop event. Currently I have a hacked up example going. I'm using the http://developer.yahoo.com/yui/examples/datatable/dt_ddrows.html'>DataTable Reorder Rows example. I've modified it into several js classes. One object they override DDProxy for handles the onDragDrop event but it seems that if it's handled here then nothing else catches the event. Check the snip:

YAHOO.extend(YAHOO.example.DDRows, YAHOO.util.DDProxy, {
    //snip
    onDragDrop: function(e, id) {
    if (id == "right-function-pane") {
        alert("In the right drop place");

        YAHOO.util.DragDropMgr.refreshCache();
    }
}

In a class that does the creation of DDRows, I want to listen to the event here as well. Some actions are more appropriate in some places. I want to listen to the event in both places. Here's what I'm doing in class that builds the above:

    onDropHandler: function(e, id) {
        DragDropTable.myDataTable.deleteRow(YAHOO.util.DragDropMgr.dragCurrent.id);
    },

    rowInitializer: function() {
    var i, id, myDDRow,
        allRows = DragDropTable.myDataTable.getTbodyEl().rows;

    for (i = 0; i < allRows.length; i++) {
        id = allRows[i].id;
        // Clean up any existing Drag instances
        if (DragDropTable.myDTDrags[id]) {
            DragDropTable.myDTDrags[id].unreg();
            delete DragDropTable.myDTDrags[id];
        }
        // Create a Drag instance for each row
        myDDRow = new YAHOO.example.DDRows(id);
        myDDRow.srcData = DragDropTable.myDataTable.getRecord(id).getData();
        myDDRow.onDragDrop = DragDropTable.onDropHandler;            
        DragDropTable.myDTDrags[id] = myDDRow;
    }
}

It seems like if one is listening the other isn't working. I haven't found the syntax for allowing events to continue to bubble or to have multiple subscriptions to onDragDrop. Does anyone have the correct syntax?

Thanks Josh Robinson