Функция которая работает на OnLoad не хочет работать на OnClick
Здравствуйте! Помогите пожалуйста
Есть функция, которая создает элемент, когда я вызываю ее так: <body onload="createElement('div', {'class': 'myDivCSSClass', 'id': 'myDivId','align':'center', 'onClick': 'SendChange(this.id)'}, {'width': '200px', 'height': '250px', 'background': '#3B9D00', 'color': '#fff'}, 'here is my text', 'test', 'before', 1);"> то она работает нормально, элемент создается, и даже выполняется функция SendChange При таком вызове: <button onClick="createElement('div', {'class': 'myDivCSSClass', 'id': 'myDivId','align':'center', 'onClick': 'SendChange(this.id)'}, {'width': '200px', 'height': '250px', 'background': '#3B9D00', 'color': '#fff'}, 'here is my text', 'test', 'before', 1);">djdjdjjd</button> ноль эмоций вообще! Как это понимать? Может кто то сталкивался, плиз Хелп!! Если это имеет значение, то проверяется все на Гугл Хроме |
Код функции createElement покажите.
|
Вот он
function createElement(name, attrs, style, text,past_id,position,changed) { var parent = document.getElementsByTagName('BODY')[0]; var e = document.createElement(name); if (attrs) { for (key in attrs) { if (key == 'class') { e.className = attrs[key]; } else if (key == 'id') { e.id = attrs[key]; } else { e.setAttribute(key, attrs[key]); } } } if (style) { for (key in style) { e.style[key] = style[key]; } } if (text) { e.appendChild(document.createTextNode(text)); } parent.appendChild(e); if(past_id){ var old_elem = document.getElementById(past_id); if(position=='before'){ parent.insertBefore(e,old_elem) }else if(position=='after'){ insertAfter(parent,e,old_elem); } if(changed!='' && changed==true){ parent.removeChild(old_elem); } } } |
Придется переименовать функцию.
<button onclick="alert(createElement)">Test</button> Результат: function createElement() { [native code] }Там срабатывает with и createElement находится раньше, в document, а не window, поэтому вызывается совсем не та функция. |
Вот тут объясняли, почему так: http://javascript.ru/forum/misc/5329...lik-imjon.html
|
Ок! Спасибо, все получилось! CreateElem() значит будит:)
|
Хотя можно window.createElement, но лучше переименовать, чтобы не было путаницы.
|
Часовой пояс GMT +3, время: 07:19. |