?

Log in

No account? Create an account
November 2016   01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
cartoon

О JS фреймворках вообще

Posted on 2010.12.04 at 23:09

Comments:


Gaperton
gaperton at 2010-12-09 21:48 (UTC) (Link)
не надо пробегаться по дереву, и делать привязку. Используется event bubbling. Мы ловим событие наверху, и уже в js определяем, какой элемент его бросил.

Это не отличется от jquery. Это можно сделать средствами jquery.
kurilka at 2010-12-09 21:59 (UTC) (Link)
А смысл handler="a" тогда, если он, судя по всему, не используется?
И "ловим наверху" рождает вариацию на тему виндового message loop чтоли? (пусть и с диспетчеризацией по хэштаблице, но откуда эта таблица возьмётся?)
Gaperton
gaperton at 2010-12-10 17:21 (UTC) (Link)
function bind( $top, handlers ){
   $top.click( function( e ){
      var $clicked = $( e.target );
      
      var handler = $clicked.attr('handler');
      
      if( handler in handers )
         (handlers[ handler ])( e );
   });   
}

bind( $widget_top, {
   a : function(){
      ...
   },
   b : function(){
      
   }
});


И никаких message loop.
kurilka at 2010-12-10 19:50 (UTC) (Link)
Да не, скорей я имел в виду про DispatchMessage из message loop, по сути он тут и получается (без жуткого свитча, конечно), про attr мысли были, но до конца чтот не додумал.
А что делать для более чем 1 типа события? Делать dispatch внутри a? Или втыкать аналоги onXXX?
Я вот не вижу сносного решения с ходу.
Gaperton
gaperton at 2010-12-17 12:59 (UTC) (Link)
> А что делать для более чем 1 типа события?

$top.bind_handlers({
   click: {
      a : function(){

      }
   },

   dblclick: {
      b : function(){

      }
   }
});


Или по отдельному вызову на каждый тип события.
kurilka at 2010-12-18 12:21 (UTC) (Link)
Если я правильно понимаю, то если оба события вешаются на handler=a, то будет {click: {a:function(){???}}, dblclick: {a:function(){???}}}?
Тогда по сути hadler=a есть просто вариант селектора и по-моему вполне заменяется на id/class (правда первы из-за своей уникальности только для штучной привязки)
Previous Entry  Next Entry