Задать вопрос
Sc0undRel
@Sc0undRel

Почему не срабатывает javascript?

Мне надо прописать в коде следующее:
var wbbOpt = {
        buttons: "bold,italic,underline,|,img,video,link,|,bullist,|,fontcolor,fontsize,|,justifyleft,justifycenter,justifyright,|,removeFormat"
    }
    $("#shortstory").wysibb(wbbOpt);


Почему этот яваскрипт срабатывает только, если его поместить вовнутрь ready function?
$(document).ready(function() {
....
});


Разве не должен срабатывать просто внутри
<script> ... </script>
  • Вопрос задан
  • 784 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
Конструкция с $(document).ready(function() { ... }); это jquery обработчик события "хэй, парень! вся страница загрузилась и отрендерилась. теперь ты можешь обратиться селектором jquery к элементу разметки с id 'shortstory' - он уже гарантированно существует, крути-верти им как хочешь! :) "

Если серьезно, надо понимать что это такое jquery-docs.ru/events/ready
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sfi0zy
@sfi0zy Куратор тега JavaScript
Creative frontend developer
Пока элемент #shortstory не будет создан, ваше $("#shortstory") не сработает. Поэтому код заворачивают в $(document).ready(), чтобы он начинал выполняться только после формирования элементов на странице.
Ответ написан
Комментировать
Rou1997
@Rou1997
DOM-элементы загружаются сверху-вниз, это касается и head с body (сначала head, т.к. он выше).
Если расположить свой script ниже элемента shortstory, то он будет работать. Иначе - только с ready и т.п. (это событие специально отслеживает, когда все элементы загружены).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы