Куда деваются св-ва Obj после первого рефреша?

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем parallax, 19 авг 2007.

Статус темы:
Закрыта.
  1. parallax

    parallax Гость

    Помогите снять копии рефреш-функций с прототипа и передать в них параметры соответствующих объектов должным образом. Должно получиться 100%-е клонирование, то есть чтобы в каждой копии помимо всего прочего содержался бы и свой собственный setTimeout. У меня же получается потеря значения после первого рефреша (потери объекта, как мне думалось ранее, оказывается, не происходит, однако ещё неизвестно толком, что это за объект, удерживающийся "в седле", на самом деле). Если ещё точнее, то потеря идёт даже не столько значений, а свойств объекта (id, value и т. п.). Привожу то, что имею. Вопрос: КУДА ДЕВАЮТСЯ СВОЙСТВА С ИХ ЗНАЧЕНИЯМИ и КАК ИХ УДЕРЖИВАТЬ "В СЕДЛЕ"?
    Вполне возможно, что для сохранения исчезающих параметров нужно их до второго рефреша успеть поместить в массив, а при последующих рефрешах таймера доставать. Я пока не пробовал, но что-то мне подсказывает, что может и не выйти. А если и получится, то вышеозвученный вопрос остаётся в силе (из любознательности). Неужто нельзя без массивов и прочих отягощений?

    Код (Text):
    <HTML>
    <HEAD>
    <META http-equiv=Content-Type content="text/html; charset=windows-1251">
    </STYLE>
    <script>
    function Counter(){}

    function refresher(obj) {
        this.obj = obj
        alert(this.obj) // объект сохраняется после любого количества рефрешей
        alert(this.obj.id) // становится 'undefined' со второго круга
        setTimeout("refresher('"+obj+"')",330) // возможно, проблема здесь, но вариации без кавычек (ссылка на функцию), подстановка this. и некоторые другие эксперименты не дали должного результата
    }

    Counter.prototype.toString = refresher
    </SCRIPT>
    </HEAD>

    <BODY>
    <TABLE style="border:none; background-color:#FFFFFF;" cellspacing=7 cellpadding=0>
    <TR>
    <TD>
        <TABLE class="tbl">
            <FORM id="form1">
                <TR>
                    <TD class=parameters>value1:</TD>
                    <TD><INPUT id="parameter1" value="17"></TD>
                </TR>
                <TR>
                    <TD><INPUT class=send onClick="
                            bit1 = new Counter(this.form);
                            bit1.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                            bit1.toString(this.form)"
                              type="button" value="Send"></TD>
                </TR>
            </FORM>
        </TABLE>
    </TD>
    <TD>
        <TABLE class="tbl">
            <FORM id="form2">
                <TR>
                    <TD class=parameters>value2:</TD>
                    <TD><INPUT id="parameter2" value="43"></TD></TR>
                <TR>
                    <TD><INPUT class=send onClick="
                            bit2 = new Counter(this.form);
                            bit2.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                            bit2.toString(this.form)"
                              type="button" value="Send"></TD>
                </TR>
            </FORM>
        </TABLE>
    </TD>
    <TD>
        <TABLE class="tbl">
            <FORM id="form3">
                <TR>
                    <TD class=parameters>value3:</TD>
                    <TD><INPUT id="parameter3" value="78"></TD></TR>
                <TR>
                    <TD><INPUT class=send onClick="
                            bit3 = new Counter(this.form);
                            bit3.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                            bit3.toString(this.form)"
                              type="button" value="Send"></TD>
                </TR>
            </FORM>
        </TABLE>
    </TD>
    </TR>
    <TR>
    <TH id="results1"></TH>
    <TH id="results2"></TH>
    <TH id="results3"></TH>
    </TR>
    </TABLE>

    </BODY>
    </HTML>
    Возможно также, что ошибка закралась во все блоки типа:

    Код (Text):
                    <TD><INPUT class=send onClick="
                            bit1 = new Counter(this.form);
                            bit1.runner = this.form.elements['parameter'+this.form.id.match(/\d/)].value;
                            bit1.toString(this.form)"
                              type="button" value="Send"></TD>
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей