È possibile utilizzare event delegation, per collegare praticamente gestore un solo evento per tutto il vostro documento, e ottenere l'elemento che l'evento è stato originariamente inviato, utilizzando 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.
}
Edit: È possibile assegnare gli eventi a tutti i vostri draggables Scriptaculous in questo modo:
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"
});
});
controllare un esempio here.
Perfetto, grazie. –
Prego! – CMS
Vale la pena notare che più in alto nel DOM gestisci un evento come questo, più devi prestare attenzione a ciò che fai all'interno del gestore, poiché potrebbe potenzialmente essere licenziato * molto *. –