Да наверное в этом и был прикол. Я тока начал с DOM-ом разбираться и за неделю читая о понятиях микрософта в этом направлении тоже ушел в ах...й. А getAttribute у меня на самом деле временный был. Сперва присваивал без него. потом решил попробывать. смотрю функцию возвращает. вот и решил что нет разницы. просто этот конкретный момент я таки тока в ие и потестил.
.... блиииин ниче не понимаю уже сравните плиз два кода оба кода находятся внутри функции вызываемой онлоадом //этот не работает при нажатии говорит не известный объект f[..] или Null var f = new Array(menunum); for(i=0;i<menunum;i++) { f[i]=menunodes[i].onclick; if(typeof(f[i])=='function') menunodes[i].onclick=function() { MenuClick(this);f[i].call() } else menunodes[i].onclick=function() { MenuClick(this); } } //а этот работает var f = menunodes[1].onclick; for(i=0;i<menunum;i++) { ... menunodes[i].onclick=function() { MenuClick(this); }; } if(typeof(f)=='function') menunodes[1].onclick=function() { MenuClick(this);f.call() } |
Цитата:
добавив статью про замыкания почитал, разобрался, сделал... спасибо большое Супер сайт рабочий вариант получился такой for(i=0;i<menunum;i++) { ..... if(typeof(menunodes[i].onclick)=='function') { var f=menunodes[i].onclick; menunodes[i].onclick=function(x) { return function() { MenuClick(this); x.call(); } }(f); } else menunodes[i].onclick=function() { MenuClick(this); }; } Мне показалось это намного убобнее атачивента и аддивентлистнера. во первых кроссбраузерность во вторых порядок выполнения функцию легко задать. Правда вот об убивании функций не думал но в моей задаче они не нужны |
Добавить функцию в обработчик onclick
Допустим есть функция myFunction.
А теперь добавляем в нее новый функционал: var myOldFunction = myFunction; function myFunction() { ...добавляем сюда новый функционал... myOldFunction(); ...или сюда... } |
Я чета не пойму - это топик мазохистов? Чем addEventListener/attachEvent им не угодил?
|
Часовой пояс GMT +3, время: 22:59. |