我想知道是否有人知道一个示例,它显示了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的语法。有没有人有正确的语法?
由于 约什罗宾逊