Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > focus() на div


Автор: Shark 16.1.2011, 17:14
есть ссылка:
Код

<div id='menu'><a href=# class="pressit_glav">Главная</a></div>

и ajax код:
Код

$(document).ready
    (
        function()
            {
                $('.glav').hide()
                $('.pressit_glav').click
                    (    
                        function()
                            {
                                $('.glav').fadeIn("slow");   

                            }
                    )
            }
    );

при нажатии на класс pressit_glav, открывается div
Код

<div class="glav"><a href='' id='news' >Новости</a><br /><a href='#' id='photo'>Фотогалерея</a><br />Видео</div>

при нажатии на ссылку id=photo из этого div'а
срабатывает ajax код:
Код

$(document).ready    
(
    function()
        {
            $('#view_news_sid').hide()
            $('#photo').click
                (
                    function()
                        {
                            $('#view_news_sid').hide("medium");
                            $('#view_news_sid').load('tbl/default/photo.php').fadeIn("slow"); 
                        }
                )
        }                
);

тут открывает информационный div (<div id="view_news_sid"></div>)

как сделать так, чтоб при нажатии на ссылку в div class=glav, фокус становился на div id="view_news_sid" автоматически? 

Автор: skyboy 16.1.2011, 19:25
window.location.hash = "view_news_sid". но это НЕ focus(). focus() - указание, куда будет перенаправляться ввод с клавиатуры. в div нажимаемые клавишы не перенаправляются.

Автор: Shark 16.1.2011, 20:33
skyboy, а если использовать это:
Код

<a name="news">News</a>
<a href="#news"></a>


поможет или нет?

Автор: Shark 16.1.2011, 22:59
Код

window.location.hash = "view_news_sid"

не работает, а мой способ, работает, но если колесиком поднять страницу, то не работает почему-то уже :(

Добавлено через 1 минуту и 52 секунды
у меня странице не перезагружается... у меня обновляется только один контейнер и все.. в него и подгружаются данный, и на него мне нужно перемещение

Автор: skyboy 16.1.2011, 23:18
Цитата(Shark @  16.1.2011,  21:59 Найти цитируемый пост)
не работает, а мой способ

я не уверен, что понимаю, что именно тебе надо. хочешь, чтоб после подгрузки ajax'ом страница прокручивалась к началу подгруженного блока?

Автор: Shark 16.1.2011, 23:26
skyboy, ага... только блок существует display: none, но когда в него загружается инфа он отображается... и мне надо именно чтоб скроллинг уходил на него smile...
желательно универсальный вариант, т.к. div'ы имеют разный class= но отображаются в одном

Автор: Dastan 17.1.2011, 13:07
Код

<html> 
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <script type="text/javascript">
      function load() {
          var txt = document.getElementById('txt');
          txt.innerHTML = '111111111111111<br />2222222222222222222222<br />3333333333333333';
          txt.style.display = 'block';
          txt.scrollIntoView(true);
      }
    </script>
  </head>
  <body>
    <p>
      Start text
      <br /><br />
      <div id="txt" style="display:none;"></div>
      <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
      some text
      <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
      end text.
    </p>
    <input type="button" onclick="load()" value="load" />    
  </body>
</html>

?

Автор: Shark 17.1.2011, 18:53
Dastan, мне совершенно не это нужно!
Пожалуйста, прочтите посты внимательнее

Автор: Shark 17.1.2011, 20:23
Проблему решил так:
Код

<a href="#news">News</a>
<a href="#about">About</a>
<a href="#download">Download</a>
<a name="<?php $_GET['#']; ?>"></a>

Автор: skyboy 18.1.2011, 12:37
Цитата(Shark @  16.1.2011,  21:59 Найти цитируемый пост)
не работает

а у меня - работает. может, у тебя к моменту изменения в window.location.hash уже было то же значение? тогда да, прокрутка не прокручивает - такой действие только при изменении значения. Можно сменить windows.location.hash на "", а потом - обратно, на нужное значение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)