Функция которая работает на 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, время: 18:36. |