Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2009, 19:10
Новичок на форуме
Отправить личное сообщение для feritailor Посмотреть профиль Найти все сообщения от feritailor
 
Регистрация: 02.11.2009
Сообщений: 4

Теряется фоукс при установке контейнеру свойства display=none...
Попытаюсь в кратце объяснить суть проблемы...

На страницу выводится таблица. Перед таблицей есть контейнер
<div id='p_1' style=\"width: 500; margin: 0px; display: none; position: absolute;\"></div>


в таблице присутствует елемент
<input type=' src='./image.gif' onClick="pos(event.clientX, event.clientY); foo('val1')">


при нажатии на который, функция pos(x,y)
function pos(x,y){
			 z=document.getElementById('p_1');
			 z.style.top=y+5+document.body.scrollTop;
			 z.style.left=x-510;
			 z.style.display='block';
			}

устанавливает координаты верхнего левого угла контейнера "p_1" в место клика и делает его видимым. Функция foo() пишет в этот контейнер некую информацию.

Среди этой информации и такая "кнопочка"
<a href='#' onClick="document.getElementById('p_1').style.display='none';"

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

А теперь вопрос...
Весь задуманный функционал работает... за исключением одного: при нажатии на эту "кнопку" (если можно ее так назвать) фокус устанавливается в начало документа.

Пробовал дописывать в тело кнопки строки
window.scrollTo(x,y); element.focus();

(ясное дело что не вместе.. )
но это не приводило к желаемому результату. Фоукс устанавливался в нужное место - но потом опять в начало страници...

Мои исследования привели меня к мысли что это все изза использования Ajaxa.

Вот функция, загружающая содержимое в контейнет 'p_1':

var xmlhttp;

function foo(value)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="script.php";
url=url+"?q="+value;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged_tm;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged_tm()
{
if (xmlhttp.readyState==4)
{
document.getElementById("p_1").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2009, 20:28
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

В конце onclick поставьте
return false
.
По onclick все работает как Вы и рассчитывали, но потом происходит default action, которое и фокусирует документ.
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2009, 11:32
Новичок на форуме
Отправить личное сообщение для feritailor Посмотреть профиль Найти все сообщения от feritailor
 
Регистрация: 02.11.2009
Сообщений: 4

Сообщение от subzey Посмотреть сообщение
В конце onclick поставьте
return false
.
По onclick все работает как Вы и рассчитывали, но потом происходит default action, которое и фокусирует документ.
Спасибо...
Помогло...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Теряется event при перемещении объекта (Drag&Drop) seagor Events/DOM/Window 16 25.07.2007 01:28