Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2011, 17:59
Интересующийся
Отправить личное сообщение для kent666 Посмотреть профиль Найти все сообщения от kent666
 
Регистрация: 19.04.2011
Сообщений: 27

скрипт всплывающей подсказки
Всем привет!
Помогите разобраться
изучаю книгу Дэвида Флэнагана, и дошел до темы событий. Что то очень тяжело она мне дается. Есть такой скрипт из книжки
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
// Следующие значения используются методом schedule(), определенным далее.
// Они используются как константы, но доступны для записи, поэтому вы можете
// переопределить эти значения, предлагаемые по умолчанию.
Tooltip.X_OFFSET = 25; // пикселов вправо от указателя мыши
Tooltip.Y_OFFSET = 15; // пикселов вниз от указателя мыши
Tooltip.DELAY = 50; // миллисекунд после события mouseover
/**
* Данный метод планирует появление всплывающей подсказки над указанным
* элементом через Tooltip.DELAY миллисекунд от момента события.
* Аргумент “e” должен быть объектом события mouseover. Данный метод извлекает
* координаты мыши из объекта события, преобразует их из оконных координат
* в координаты документа и добавляет вышеуказанные смещения.
* Определяет текст подсказки, обращаясь к атрибуту "tooltip" заданного
* элемента. Данный метод автоматически регистрирует обработчик события
* onmouseout и отменяет его регистрацию. Этот обработчик выполняет скрытие
* подсказки или отменяет ее запланированное появление.
*/
Tooltip.prototype.schedule = function(target, e) {
        // Получить текст для отображения. Если текст отсутствует - ничего не делать.
    var text = target.getAttribute("tooltip");
    if (!text) return;
        // Объект события хранит оконные координаты указателя мыши.
        // Поэтому они преобразуются в координаты документа с помощью модуля Geometry.
    var x = e.clientX + Geometry.getHorizontalScroll();
    var y = e.clientY + Geometry.getVerticalScroll();
        // Добавить смещения, чтобы подсказка появилась правее и ниже указателя мыши.
    x += Tooltip.X_OFFSET;
    y += Tooltip.Y_OFFSET;
        // Запланировать появление подсказки.
    var self = this; // Это необходимо для вложенных функций
    var timer = window.setTimeout(function() { self.show(text, x, y); }, Tooltip.DELAY);
        // Зарегистрировать обработчик onmouseout, чтобы скрыть подсказку
        // или отменить появление запланированной подсказки.
    if (target.addEventListener) target.addEventListener("mouseout", mouseout, false);
    else if (target.attachEvent) target.attachEvent("onmouseout", mouseout);
    else target.onmouseout = mouseout;
        // Реализация слушателя события приводится далее
    function mouseout() {
        self.hide(); // Скрыть подсказку, если она уже на экране,
        window.clearTimeout(timer); // отменить все запланированные подсказки
            // и удалить себя, т.к. обработчик запускается единожды
        if (target.removeEventListener)
            target.removeEventListener("mouseout", mouseout, false);
        else if (target.detachEvent)
            target.detachEvent("onmouseout",mouseout);
        else target.onmouseout = null;
    }
}
    // Определить единственный глобальный объект Tooltip для общего пользования
Tooltip.tooltip = new Tooltip();
    /*
    * Следующая статическая версия метода schedule() использует
    * глобальный объект tooltip
    * Используется метод следующим образом:
    *
    * <a href="www.davidflanagan.com" tooltip="good Java/JavaScript blog"
    * onmouseover="Tooltip.schedule(this, event)">David Flanagan's blog</a>
    */
Tooltip.schedule = function(target, e) {Tooltip.tooltip.schedule(target, e); }

</script>
</head>
<body>
<a href="www.davidflanagan.com" tooltip="good Java/JavaScript blog"
 onmouseover="Tooltip.schedule(this, event)">David Flanagan's blog</a>
</body>

Который не работает. Главное в самом начале скрипта выдает ошибку то что объект Tooltip не определен, так как зачем то мы определяем его свойства до определения самого объекта (Tooltip.X_OFFSET = 25).
Дальше вообще темный лес!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Картинка в виде всплывающей подсказки abc_ua Оффтопик 20 03.04.2012 16:32
Не работает скрипт :( VladimirV Javascript под браузер 5 21.12.2010 14:26
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07