чудо{вищные} заметки

Sorry for my terrible english. My native language is PHP.

jQuery.facts

Расскажу несколько фактов о jQuery, которые как мне видится, не очень понимают «отечественные программеры»

  • при «навешивании» обработчика какого-либо event-а к (например $(‘#element’).click(handler); ) он НЕ заменяет предыдущий обработчик (если таковой имелся), т.е. код:

    $('#element').click(function(){ alert('hello');})
    $('#element').click(function(){ alert('world'); })

    Выведет оба alert-а, а не только второй как думается некоторым.
  • Непосредственно из первого вытекает следующий факт — конструкций $(document).ready(blablabla); в коде может быть «бесчисленное» количество раз — все обработчики вызовутся в порядке их добавления.
  • Система событий в jQuery позволяет не ограничиваться теми событиями, которые есть в документации — можно создавать события самостоятельно:

    $('button').click(function(){ jQuery.event.trigger("buttonClicked");});
    $('div').bind('buttonClicked',function(){ $(this).hide();});
    $('span').bind('buttonClicked',function(){ $(this).show();});

    Подобная техника позволяет существенно упростить код и сделать его «читабельнее».
  • Анимационные эффекты в jQuery асинхронны и нередко возникает вопрос — как одну функцию выполнить строго после завершения первой. Все core-функции jQuery связанные с эффектами в качестве последнего параметра принимают callback — функцию, которая вызовется по завершению текущего эффекта:

    $('element-1').fadeOut(3000,function(){
    $('element-2').fadeIn(1500,function() {
    alert('done second effect');
    });
    });
  • К ЛЮБОМУ html-элементу можно добавить ЛЮБОЙ атрибут (<span myownattr=»somevalue» />). По этим «самодельным» атрибутам элементы можно найти с помощью селекторов jQuery:

    var elements_by_attr = $('[@myownattr]');
    var elements_by_attr_with_value = $('[@myownattr="somevalue"]');
    var spans_by_attr = $('span[@myownattr]');

    Очень полезное «явление» при создании своих собственных элементов управления (и не только).

Ну и напоследок подкину найденную статейку «jQuery for JavaScript programmers», прочитать которую стоит тем, кто только начинает осваивать прелести jQuery . Материал изложен на английском.

Реклама

Август 21, 2007 - Posted by | advertise, dev, jquery, js, web

5 комментариев »

  1. >К ЛЮБОМУ html-элементу можно добавить ЛЮБОЙ аттрибут
    Добавить можно (наверное), но код будет невалидным.

    комментарий от ayavryk | Октябрь 15, 2007

  2. Тут либо шашечки, либо ехать. И я вовсе не призываю клепать эти самые аттрибуты направо и налево — это лишь факт, который можно использовать во благо. Чтобы читатель увидев код навроде <div control=»drop-down-menu»></div> понимал что это не заклятие высшей магии.

    комментарий от MiRacLe | Октябрь 15, 2007

  3. Код будет валидным в валидаторе, он JavaScript не исполняет :-) ему все равно каких атрибутов вы там понавешаете.

    комментарий от Avatar | Октябрь 29, 2007

  4. Именно, один из простых официальных плагинов, что metadata зовётся, написанный самим автором jQuery (если кто не знает — ejohn.org) как раз использует свой собственный атрибут metaDone. В это ничего такого преступного нету :).

    комментарий от Q-Zma | Ноябрь 7, 2007

  5. […] jQuery.facts […]

    Уведомление от Все о jquery на одной странице :: TermiT's Blog | Февраль 2, 2008


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: