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> <!-- меню работы с выбраным днём--> |
Цитата:
|
Спасибо за якорь.
Этот вариант хотел использовать в послед... очередь
|
Спасибо профессору
вы правы самое простое здесь это якорь.
Но если у кого ни будь есть другой вариант решения я буду благодарен за урок. почему окно возвращалось в положние верхнийлевый угол? Потому что я эээ(чЕшка) я же везде в сылках на которые вешал события по клику в href=# указал символ решетку, что указывало сылке искать якорь... а его нет вопрос снят. |
Цитата:
http://javascript.ru/forum/misc/84-p...-stranicy.html Набери в поисковой строке "скрол" - много чего еще найдёшь... |
во всех своих <a href=# сделай onclick="блабла; return false"
|
к предыдущему посту
В сылке в поле href указываем href="javascript:void(0)"
получаем тот же результат как onclick=func(); return false; Сылка не производит переход, и не совершает никаких действий кроме описаных в onclick и тп. |
Часовой пояс GMT +3, время: 06:30. |