Page 36 - JavaScript修炼之道
P. 36
任务10 将行为和自定义事件解耦 23
监听一个自定义事件
// Prototype --通过event.memo传入额外数据
$(element).observe('ns:event', handlerFx)
document.observe('ns:event', handlerFx)
// jQuery -- 通过多余的参数传入额外数据
$(elementOrSelector).bind('event', handlerFx)
// MooTools -- 通过事件处理器参数传入额外数据
Element.Events.event = {};
$(element).addEvent('event', handlerFx)
// YUI 3 -- 通过事件处理器参数传入额外数据
Y.on('event', handlerFx)
// Dojo -- 通过事件处理器参数传入额外数据
dojo.subscribe('event', context, handlerFx)
触发一个自定义事件
// Prototype
$(element).fire('custom:event');
document.fire('custom:event');
whichever.fire('custom:event', { foo: 'bar', baz: 42 });
// jQuery
$(elements).trigger('event')
$(elements).trigger('event', { foo: 'bar', baz: 42 });
$(elements).trigger('event', ['bar', 42]);
// MooTools
$(element).fireEvent('event')
$(element).fireEvent('event', arg)
document.fireEvent('event', [arg1, arg2, arg3])
// YUI 3
Y.fire('event')
Y.fire('event', arg1, arg2, arg3)
// Dojo
dojo.publish('event')
dojo.publish('event', [arg])
相关任务
任务8