Вы можете использовать event delegation, в основном подключить обработчик только один события для всего документа и получить элемент, которому событие было первоначально переданным, используя 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: Вы можете назначить события чтобы все ваши Scriptaculous draggables на этом пути:
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"
});
});
Проверить пример here.
Отлично, спасибо. –
Добро пожаловать! – CMS
Стоит отметить, что выше в DOM вы обрабатываете такое событие, тем более осторожным должно быть то, что вы делаете внутри обработчика, так как это потенциально может быть запущено * много *. –