Я не знаю о MooTools, но в нативном JS есть простой способ сделать это ..
var orgAppendChild = document.appendChild;
document.appendChild = localAppendHandler;
var domElement = new Class({...});
var MyObject = new domElement(...);
// document.appendChild(MyObject);
var ss = document.createElement('tr');
document.appendChild (ss);
function localAppendHandler(MyObject)
{
if (MyObject instanceof domElement)
UrCustomRoutine(MyObject )
else
orgAppendChild(MyObject);
}
function UrCustomRoutine(MyObject ){
//your custom routine
}
Надеюсь, это поможет
Обновление:
Из вашего дальнейшего объяснения (обработки appendChild любого элемента DOM) я понимаю, что не существует общего способа определения локальных обработчиков для захвата события.
Но есть обходной путь (это очень уродливо, я знаю). Означает, что вам нужно определить LocalHandler для элемента DOM, прежде чем вы собираетесь использовать appendChild.
Перед этим
document.getElementById ( 'divTarget'). AppendChild ()
вам нужно переназначить локальный обработчик на элемент, к которому вам нужен доступ
orgAppendChild = document.getElementById('divTarget').appendChild;
document.getElementById('divTarget').appendChild = localAppendHandler;
var sss = document.createElement('table');
document.getElementById('divTarget').appendChild(sss);
Другая альтернатива:
Если вы хотите сохранить простоту, я предлагаю этот альтернативный способ. Создайте локальный метод AppendChild, который принимает объект и имя узла в качестве параметра.
function AppendChild(MyObject ,Node)
{
if (MyObject instanceof domElement)
//your custom routine
else if (Node=="" && (MyObject instanceof domElement==false))
document.appendChild(MyObject);
else if (Node!="" && (MyObject instanceof domElement==false))
eval( "document.getElementById('" + Node + "').appendChild(MyObject);");
}
И
Если вы хотите добавить элемент DOM к документу
AppendChild(DOMelement,"")
Если вы хотите добавить элемент DOM в другой
контейнер
AppendChild(DOMelement,"divTarget")
Если вы хотите обработать ваш пользовательский объект
AppendChild(customObject,"")
это лучший способ сделать это.