YUI onDragDrop多个侦听器

时间:2009-11-12 14:18:30

标签: events yui

我想知道是否有人知道一个示例,它显示了YUI DDProxy,DD或DDTarget onDragDrop事件的多个侦听器。目前我有一个被黑客攻击的例子。我正在使用http://developer.yahoo.com/yui/examples/datatable/dt_ddrows.html'>DataTable重新排序行示例。我把它修改成了几个js类。他们覆盖DDProxy的一个对象处理onDragDrop事件,但似乎如果它在这里被处理,那么没有别的东西捕获事件。检查剪辑:

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();
    }
}

在创建DDRows的类中,我也想在这里听一下这个事件。某些行为在某些地方更合适。我想在两个地方听这个活动。以下是我在课堂上做的事情:

    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;
    }
}

似乎一个人正在倾听,另一个人正在工作。我还没有找到允许事件继续冒泡或有多个订阅onDragDrop的语法。有没有人有正确的语法?

由于 约什罗宾逊

0 个答案:

没有答案