Мне было интересно, знает ли кто-нибудь о примере, который показывает несколько слушателей события onDragDrop YUI DDProxy, DD или DDTarget. В настоящее время у меня есть взломанный пример. Я использую пример http://developer.yahoo.com/yui/examples/datatable/dt_ddrows.html'>DataTable Reorder Rows. Я изменил его в несколько классов 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. У кого-нибудь есть правильный синтаксис?
Спасибо
Джош Робинсон