Puede utilizar event delegation, para conectar básicamente controlador sólo un evento a todo el documento, y obtener el elemento que el evento fue enviado originalmente, usando event.target:
document.body.onmousedown = function (e) {
e = e || window.event;
var elementId = (e.target || e.srcElement).id;
// call your re-create function
recreate(elementId);
// ...
}
function recreate (id) {
// you can do the DOM manipulation here.
}
Editar: Puede asignar eventos a todos sus draggables Scriptaculous de esta manera:
Event.observe(window, 'load', function() {
Draggables.drags.each(function (item) {
Event.observe(item.element, 'mousedown', function() {
alert('mouseDown ' + this.id); // the this variable is the element
}); // which has been "mouse downed"
});
});
Comprobar un ejemplo here.
Perfecto, gracias. –
¡De nada! – CMS
Vale la pena señalar que cuanto más arriba en el DOM maneje un evento como este, más cuidadoso debe ser sobre lo que hace dentro del controlador, ya que puede ser despedido * mucho *. –