요즘 prototype 관련 글에 prototype.js 올바르게 사용하자라는 글이 돌아다닌다.
대부분 맞는것이기에 하다.
그러나. 객체지향적인것도 좋기야 하지만, 가장 중요한건 얼마나 명시적으로 다가오냐이다.
이벤트 등록에 관해서 그 부분이 두드러진다.
소스 여기저기서 객체마다 observe 하는게 나을까.
Event 구역에서 다 등록하는게 나을까. 흠
..
$('a').observe('click', function(...));
..
$('b').observe('click', function(...));
..
$('c').observe('click', function(...));
..
vs
Event.observe('a', 'click', function(...));
Event.observe('b', 'click', function(...));
Event.observe('c', 'click', function(...));
Event 글자가 튀어서 그런지 몰라도 Event 가 낫단말이지..
그리고 그 무엇보다도 prototype.js 1.6.3 버젼에서 element.observe 함수는 언제나 동적하지 않는다.
IE 에서 동적으로 생성된 element 에 observe 를 실행하면 오류가 난다.
FF에서는 잘되지만.
대부분 맞는것이기에 하다.
그러나. 객체지향적인것도 좋기야 하지만, 가장 중요한건 얼마나 명시적으로 다가오냐이다.
이벤트 등록에 관해서 그 부분이 두드러진다.
소스 여기저기서 객체마다 observe 하는게 나을까.
Event 구역에서 다 등록하는게 나을까. 흠
..
$('a').observe('click', function(...));
..
$('b').observe('click', function(...));
..
$('c').observe('click', function(...));
..
vs
Event.observe('a', 'click', function(...));
Event.observe('b', 'click', function(...));
Event.observe('c', 'click', function(...));
Event 글자가 튀어서 그런지 몰라도 Event 가 낫단말이지..
그리고 그 무엇보다도 prototype.js 1.6.3 버젼에서 element.observe 함수는 언제나 동적하지 않는다.
IE 에서 동적으로 생성된 element 에 observe 를 실행하면 오류가 난다.
FF에서는 잘되지만.
var item = Builder.node('span', {className:'button'}, name);
var item = new Element('span', {className:'button'}).update(name);
item.observe('click', func);
Event.observe(item,
'click', func); // ok