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-элементу можно добавить ЛЮБОЙ атрибут (). По этим “самодельным” атрибутам элементы можно найти с помощью селекторов 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 . Материал изложен на английском.

Share to Facebook
Share to LiveJournal
Share to MyWorld
Share to Odnoklassniki
Share to Yandex

21.08.07  
MiRacLe
 |   | RSS  | trackback url
  • http://x9.ru ayavryk

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

  • http://miracle.rpz.name/ MiRacLe

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

  • http://www.topsitepro.ru/ Avatar

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

  • http://q-zma.rajaka.net/ Q-Zma

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

Performance Optimization WordPress Plugins by W3 EDGE