Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   скрыть отобразить параграф (https://javascript.ru/forum/jquery/17211-skryt-otobrazit-paragraf.html)

oleg666 11.05.2011 00:03

скрыть отобразить параграф
 
Разбираю простую задачу из книжного примера, но этом виде не работает.

<script>
$(":button").click(function(){
    $("p:first").toggle();
});
</script>  

<p>Абзац</p>
<input type="button" value="скрыть">


не пойму в чем ошибка

Sweet 11.05.2011 00:12

А в книжне про функцию ready не писАли???

Starkua 11.05.2011 00:30

Джаваскрипт код, браузер видит раньше, чем DOM-элемент (т.к. он выше, в файле). Поэтому при его выполнении, селектор $("p:first") не может найти нужный инпут.

oleg666 11.05.2011 08:54

то есть ставлю DOM элемент выше скрипта. А про функцию ready действительно ничего нет

Starkua 11.05.2011 10:49

Нет, я просто объяснил причину, почему не работает.
Скрипты обычно нужно запускать, после загрузки DOM-дерева, для этого в jQuery есть метод ready.

Sweet 11.05.2011 11:02

Ready

0931454574 11.05.2011 17:47

$(document).ready(function()
{
   $("#button").click(function()
   {
       $("p:first").toggle();
   });
 
 
  
});


Вот так работает)
Только лучше использовать id для таких целей и вообще. Это хороший стиль.


Часовой пояс GMT +3, время: 16:00.