За последние 24 часа нас посетили 17760 программистов и 1715 роботов. Сейчас ищут 896 программистов ...

Учебник Дронова HTML,CSS,Javascript

Тема в разделе "JavaScript и AJAX", создана пользователем Alexx45, 26 янв 2015.

  1. Alexx45

    Alexx45 Новичок

    С нами с:
    22 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Всем доброго времени суток.

    Изучаю Дронова. Возникла одна непонятка в тексте.

    Есть картинка с кодом (листинг 16.9):

    В коде на картинке прописано :

    Ext.get(this).parent("DIV").addClass("hovered");

    и

    Ext.get(this).parent("DIV").removeClass("hovered") ;

    а в описании картинки:

    Ext.fly(this).parent("DIV").addClass("hovered");

    и

    Ext.fly(this).parent("DIV").removeClass("hovered") ;

    Если здесь опечатка то где: в картинке или в описании?

    Спасибо.

    Это код на картинке:

    function showHideSample(e, t) {
    var elDiv = Ext.fly(t).parent(".sample");
    var ceSampleText = elDiv.select("*:not:)first-child)");
    ceSampleText.setVisibilityMode(Ext.Element.DISPLAY );
    ceSampleText.toggle();
    }

    function prepareSamples() {
    var ceSamples = Ext.select(".sample");
    ceSamples.each(function(el, cl, ind){
    var elH6 = el.child(":first");
    elH6.on("click", showHideSample);
    elH6.on("mouseover", function(e, t) {
    Ext.get(this).parent("DIV").addClass("hovered");
    });
    elH6.on("mouseout", function(e, t) {
    Ext.get(this).parent("DIV").removeClass("hovered") ;
    });
    var ceSampleText = el.select("*:not:)first-child)");
    ceSampleText.setDisplayed(false);
    });
    }

    А это описание к этой картинке:

    Мы объявили функции showHideSample и prepareSamples. Первая будет обрабаты-вать событие click в первом потомке контейнера с текстом примера и в ответ на это событие скрывать или открывать данный контейнер. Вторая будет выполнять подготовительные действия: при открытии Web-страницы скрывать контейнеры с текстом примеров и привязывать к ним обработчики событий.
    Рассмотрим код этих функций построчно. И начнем с функции prepareSamples.
    Сначала получаем все контейнеры с привязанным стилевым классом sample, т. е. содержащие текст примеров:
    var ceSamples = Ext.select(".sample");
    Затем для каждого полученного контейнера выполняем описанные далее манипу-ляции:
    ceSamples.each(function(el, cl, ind){
    Получаем первый потомок контейнера:
    var elH6 = el.child(":first");
    Привязываем к нему в качестве обработчика события click функцию showHideSample:
    elH6.on("click", showHideSample);
    Привязываем к нему функцию — обработчик события mouseover, которую там же и объявляем:
    elH6.on("mouseover", function(e, t) {
    Ext.fly(this).parent("DIV").addClass("hovered");
    });
    Эта функция получит родитель элемента Web-страницы, в котором возникло дан-ное событие, т. е. контейнер с текстом примера, и привяжет к нему стилевой класс hovered.
    Не забываем привязать функцию-обработчик события mouseout, которая будет уби-рать из привязки к контейнеру стилевой класс hovered:
    elH6.on("mouseout", function(e, t) {
    Ext.fly(this).parent("DIV").removeClass("hovered") ;
    });
    Получаем все остальные элементы-потомки контейнера (не являющиеся первым потомком):
    var ceSampleText = el.select("*:not:)first-child)");
    И скрываем их:
    ceSampleText.setDisplayed(false);
    });
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    В доку глянь и реши какой метод лучше подходит же ж.
     
  3. Alexx45

    Alexx45 Новичок

    С нами с:
    22 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Это значит, что и первое и второе выражение имеет смысл?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Год издания: 2011, на дворе 2015, читай книги за 2014 максимум или по совету более старые.
    HTML, CSS, JavaScript должны быть три разные книги, максимум две HTML + CSS и JavaScript.

    Понимая принцип программирования и синтаксис javscript легко понять ExtJS возможности по его документации.

    Ext.fly и Ext.get почти одно и тоже но есть нюансы, это из ExtJS 3?
    http://docs.sencha.com/extjs/3.4.0/#!/api/Ext-method-fly
    http://docs.sencha.com/extjs/3.4.0/#!/api/Ext-method-get

    get нельзя использовать для компонентов http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.Component

    Так что бери свежие книги.
     
  5. Alexx45

    Alexx45 Новичок

    С нами с:
    22 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Спасибо.