Re: JavaScript+HTML: Код работает нестабильно! :(
От: andik  
Дата: 06.01.04 13:12
Оценка: 3 (1)
Здравствуйте, UJey, Вы писали:

В общем то вся проблема из-за того, что у тебя после клика появляются еще элементы с id = hTableHandleDT и hTableHandleDD
при следующем обращении их уже 2

самы простой и быстрый способ выделен ниже жирным

UJ>Добрый день!


UJ>Прошу помощи, поскольку сам ума не приложу из-за чего один и тот же код работает нестабильно.


UJ>Описываю ситуацию:

UJ>Делаю страничку для хэлпа. При нажатии на ссылку должен появляться слой в виде хинта (подсказки) с описанием ссылки-параметра.

UJ>Вот код слоя:

UJ>
UJ><div id="HintObject" class="HintStyle" style="display:none; position:absolute; left:275px; top:168px; z-index:1"></div>
UJ>


UJ>Вот код ссылки:

UJ>
UJ>TCntDbTableHandle <a id="idTableHandle" href="javascript:ShowHint('idTableHandle', 'hTableHandle')">TableHandle</a>
UJ>


UJ>Вот код функции ShowHint:

UJ>
UJ>function ShowHint(Parameter_ID, HintString_ID)
UJ>{
UJ>    // Define HintObject position
UJ>    ParamObject = document.all[Parameter_ID];
    
UJ>    S_OffsetLeft = 0;
UJ>    S_OffsetTop = 0;
UJ>    Obj = ParamObject;
UJ>    while (Obj != null)
UJ>    {
UJ>          S_OffsetLeft += Obj.offsetLeft;
UJ>          S_OffsetTop += Obj.offsetTop;
UJ>      Obj = Obj.offsetParent;        
UJ>    }
             
UJ>    document.all.HintObject.style.left = ParamObject.offsetWidth + S_OffsetLeft + 10;
UJ>    document.all.HintObject.style.top  = S_OffsetTop;

        document.all.HintObject.innerHTML = '';
UJ>    // Define HintObject content
UJ>    DT_Object = document.all[HintString_ID + 'DT'];
UJ>    DD_Object = document.all[HintString_ID + 'DD'];    
UJ>    document.all.HintObject.innerHTML = '<DL>' + DT_Object.outerHTML + DD_Object.outerHTML + '</DL>';

UJ>    // Make HintObject visible
UJ>    document.all.HintObject.style.display="";
UJ>}
UJ>


UJ>Еще инфа: данные для этого слоя берутся из HTML-странички:

UJ>
<dl>
UJ>  <dt id="hTableHandleDT"><em>TableHandle</em></dt>
UJ>  <dd id="hTableHandleDD">
UJ>    [in] Table handle, returned by <a href="#CntDb_CreateTable">CntDb_CreateTable</a>
UJ>         or <a href="#CntDb_OpenTable">CntDb_OpenTable</a> functions.
  </dd>

UJ>  <dt id="hColumnDT"><em>Column</em></dt>
UJ>  <dd id="hColumnDD">
UJ>    [in] Pointer to a structure containing all column data to be added into the table.
  </dd>
</dl>
UJ>


UJ>Проблема: первый раз все работает отлично. Зато вот если нажать на эту ссылку второй раз, то появляется окошко-подсказка с надписью "undefined undefined". Вот не могу понять почему... и как сделать, чтобы работало?


UJ>Очень прошу помощи.


UJ>Спасибо, буду очень ждать.

UJ>Евгений.
... << RSDN@Home 1.0 beta 7a >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.