Показать сообщение отдельно
  #1 (permalink)  
Старый 01.02.2011, 12:48
Новичок на форуме
Отправить личное сообщение для point_msk Посмотреть профиль Найти все сообщения от point_msk
 
Регистрация: 01.02.2011
Сообщений: 4

HELP ME левый верхний угол -почему меня ставят всё время в угол
Пишу впервые потому прошу прощения за свои любые ошибки.



Программа составления рабочего графика.
При выборе сотрудника формируется строка таблицы из календарных дней месяца, в ней каждая ячейка соответствует числу месяца, по клику по выбраному дню вызывается функция которая смещает div position:absolute; в координатную точку курсора и делает его видимым display:block; в диве есть список добавления рабочей смены отбражаемой в выбраной ячейки после окончания работы функции.

при формировании ячеек документ расширяется в горизонтальной плоскости, появляется X_scrollbar
При добавлении № сотрудников документ расширятся в плоскости Y

Теперь глупый вопрос:
я смещаюсь посредством scrollbara в правый нижний угол выбираю крайнию правую ячейку кликаю по ней функция отрабатывается появляется div сменю выбора смены. И к моему сожалению экран возвращается в позицию левый верхний угол.
для того чтобы вновь вернутся к работе с меню нужно вручную смещать scrollbar (такой же эфект наблюдается при выполнеии любой фукции )
Хотел спросить как от этого можно избавится.

мыслей несколько.
1 отключить обработку дальнейшего события после вызова функции что бы для документа было бы не явным выполнение каких то действий и как следствие реакции по изменению видимой позиции отображения окна
2 передавать координаты положения div-меню, для отображения видимой части окна в нужных координатах.

Куски кода не чем не помогут но на всякий случай выкладываю.
помогите найти направление куда копать, надоело стоять вечно влевом углу.

for (index=0; index<DAYS_OF_MONTH; index++){
if( Calendar.getDate() > index )
{ var day = Calendar.getDate();
var data = ''+Calendar.getFullYear()+'-'+(Calendar.getMonth()+1)+'-'+Calendar.getDate()+'';
var quote = "'";

cal2 +='<td class=TD_work_day id=US_'+data+'_'+arguments[1]+' style="width:70px; height:150px;";><center><a href=# class=A_work_day id=TM_'+data+arguments[1]+' onclick="id_date('+arguments[1]+',\''+data+'\'); change_workday(this); " >'+day+'QQQQQQQQQQQQQQQQQQQQ</a></center></td>';


Calendar.setDate(Calendar.getDate()+1);
}}
cal2 += TR_work_day_end;



return cal2;




function change_workday(element)
{
var curleft = curtop = 0;
var offset = element.offsetHeight;
var el_width = element.offsetLeft + element.offsetWidth;
// alert(element.offsetParent);
if (element.offsetParent)
{
curleft = element.offsetLeft
curtop = element.offsetTop
while (element = element.offsetParent) {
curleft += element.offsetLeft
curtop += element.offsetTop
}
}
var popup = document.getElementById('cw');
popup.style.top = curtop + offset;
popup.style.left = curleft - el_width;
popup.style.display = 'block';
}



<div id=cw style=""><a id=close_cw href=# onclick="close_change_workday('cw')">X-Закрыть Окно-X</a><ul id=menu_change_workday><li><a href=# id=select_day onclick="add_day(idU,date,d_sm);">Выбрать день</a></li><li><a href=# onclick=del_day(idU,date,d_sm);>Удалить день</a></li><li><a href=# onclick="menu_cw_list(); add_menu_sm();">Выбрать смену</a> <ul id=cw_list style=""></ul> </li><li><a href=# onclick="add_menu_rs(); menu_rs_list();">Причина</a><ul id=rs_list></ul></li></ul></div> <!-- меню работы с выбраным днём-->

Последний раз редактировалось point_msk, 01.02.2011 в 12:59.
Ответить с цитированием