|
|
|
| Есть некий объект. У него есть метод, в нем необходимо удалить объект.
Вот объект:
function obj(name)
{
this.name = name;
this.create = objCreate;
this.min = objClose;
}
|
Это метод create:
function objCreate()
{
str = '<div id="'+this.name+'">здесь некий текст</div>';
document.getElementById('text_body').innerHTML += str;
}
|
а вот какой должен быть метод close я не знаю.
Я попробовал внутри объекта поставить кнопку по клику на ней поставить такое событие:
document.all.'+this.name+'.removeNode(true)
|
но как эту строку перенести в метод, я не знаю.
Подскажите пожалуйста. | |
|
|
|
|
|
|
|
для: angelcorpc
(29.10.2009 в 12:55)
| | Люди, ну что, никто не знает? | |
|
|
|
|
|
|
|
для: angelcorpc
(29.10.2009 в 12:55)
| | Наверное, так:
<script>
function objClose()
{
//Здесь код удаления объекта
}
</script>
<input type=button value=Go onclick=objClose() />
|
| |
|
|
|
|
|
|
|
для: coloboc66
(30.10.2009 в 12:38)
| | Так это-то понятно, но что написать вместо
> //Здесь код удаления объекта | |
|
|
|
|
|
|
|
для: angelcorpc
(30.10.2009 в 13:01)
| | Что-то вроде:
x=document.getElementById('div_id');
y=document.body.removeChild(x);
|
Документацию надо читать... | |
|
|
|
|
|
|
|
для: angelcorpc
(29.10.2009 в 12:55)
| | я может чегото не понял но можно удалить экземпляр объекта но не как не метод если еметься ввиду уничтожить див то так
document.getElementById(id).parentNode.removeChild(document.getElementById(id)) | |
|
|
|
|
|
|
|
для: guye
(30.10.2009 в 15:08)
| | Удалить надо именно объект.
Так как описано, не получается.
Приведу полностью весь код:
//
//класс
//
function win(x, y, w, h, dial, name, header, body)
{
this.x = x;
this.y = y;
this.w = w;
this.h = h;
this.dialog = dial;
this.name = name;
this.head = header;
this.body = body;
this.create = WinCreate;
this.min = WinClose;
}
//
//методы
//
function WinCreate()
{
if (!this.dialog){
close_btn = '<td id="" bgcolor="blue">\n'+'<INPUT type="image" src ="1.gif" OnClick="'+this.name+'.min()">\n'+'</td>\n';
clspan = ' colspan="2"';
}
else{
close_btn = '';
clspan = '';
}
str = '<div id="'+this.name+'" style="position: absolute; top: '+this.y+'px; left: '+this.x+'px; width: '+this.w+'px; height: ' +this.h+'px;">\n'
+'<table width="100%" border="1" bordercolor="blue" cellspacing="0" cellpadding="0">\n'
+'<tr>\n'
+ close_btn
+'<td width="100%" height="21" align="center" bgcolor="blue"">\n'
+'<font color="white"><b>'+this.head+'</b></font>\n'
+'</td>\n'
+'</tr>\n'
+'<tr>\n'
+'<td at="bd" bgcolor="white"'+clspan+'>\n'
+'<div id="div_'+this.name+'">\n'
+this.body+'</div>\n'
+'</td>\n'
+'</tr>\n'
+'</table>\n'
+'</div>';
document.getElementById('text_body').innerHTML += str;
}
function WinClose(){
x=document.getElementById(this.name);
y=document.body.removeChild(x);
}
|
Что я не правильно делаю? | |
|
|
|
|
|
|
|
для: angelcorpc
(30.10.2009 в 17:33)
| | x=document.getElementById(this.name);
По крайней мере в этой строке скрипт не понимает Id объекта, подлежащего удалению. Он у вас не указан. Попробуйте внутри WinClose написать alert(this.name) и получите что-то типа undefined. | |
|
|
|
|
|
|
|
для: coloboc66
(31.10.2009 в 09:14)
| | Попробовал. Получил: window_1. Т.е. название определяется нормально.
Протестировал в Лисе в firebug, он ругается на строчку y=document.body.removeChild(x);
Говорит: Node was not found" code: "8 | |
|
|
|
|
|
|
|
для: angelcorpc
(31.10.2009 в 15:03)
| | Как я понимаю, выхода из этой ситуации нет... | |
|
|
|
|
|
|
|
для: angelcorpc
(02.11.2009 в 10:54)
| | Выход из этой ситуации простой - корректное (т.е. без ошибок) написание кода. А для этого нужно изучить DOM. Я же вам просто показывал, в каком направлении двигаться. Точный код дать не могу, извините, для этого нужно копаться в справочниках и тестировать ваш скрипт, а мне недосуг. Может кто другой может... | |
|
|
|
|
|
|
|
для: coloboc66
(02.11.2009 в 12:01)
| | Хорошо, спасибо всем за помощь:)
Буду зарываться в книжки и статьи:)))) | |
|
|
|