Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2011, 13:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,429

Сообщение от point_msk
Хотел спросить как от этого можно избавится.
Как вариант наставить якорей и позиционироваться на них...
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2011, 13:32
Новичок на форуме
Отправить личное сообщение для point_msk Посмотреть профиль Найти все сообщения от point_msk
 
Регистрация: 01.02.2011
Сообщений: 4

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

Спасибо профессору
вы правы самое простое здесь это якорь.

Но если у кого ни будь есть другой вариант решения я буду благодарен за урок.

почему окно возвращалось в положние верхнийлевый угол?

Потому что я эээ(чЕшка) я же везде в сылках на которые вешал события по клику в href=# указал символ решетку, что указывало сылке искать якорь... а его нет

вопрос снят.

Последний раз редактировалось point_msk, 01.02.2011 в 14:21.
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2011, 14:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,429

Сообщение от point_msk
если у кого ни будь есть другой вариант решения я буду благодарен за урок
На этом форуме много чего есть...
Прокрутка страницы

Набери в поисковой строке "скрол" - много чего еще найдёшь...
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2011, 22:27
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

во всех своих <a href=# сделай onclick="блабла; return false"
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2011, 10:36
Новичок на форуме
Отправить личное сообщение для point_msk Посмотреть профиль Найти все сообщения от point_msk
 
Регистрация: 01.02.2011
Сообщений: 4

к предыдущему посту
В сылке в поле href указываем href="javascript:void(0)"
получаем тот же результат как onclick=func(); return false;
Сылка не производит переход, и не совершает никаких действий кроме описаных в onclick и тп.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37