这两种自定义事件的绑定方式有什么区别?哪种好?
高洛峰
高洛峰 2016-10-27 17:01:50
0
1
679

第一种方式,直接将自定义事件存放在__onfireEvents中

var __onfireEvents = {}; function _bind(eventName, callback, is_one, context) { if (typeof eventName !== string_str || typeof callback !== function_str) { throw new Error('args: '+string_str+', '+function_str+''); } if (! hasOwnKey(__onfireEvents, eventName)) { __onfireEvents[eventName] = {}; } __onfireEvents[eventName][++__cnt] = [callback, is_one, context]; return [eventName, __cnt]; } function on(eventName, callback, context) { return _bind(eventName, callback, 0, context); }

第二种方式,同样是将自定义事件存储起来,不同之处是绑定在元素上,是否有必要?这里有什么优势吗?

$customSubMap = {}; subscribeEvent = function ( $collection, event_name, fn ) { $collection.on( event_name, fn ); if ( ! $customSubMap[ event_name ] ) { $customSubMap[ event_name ] = $collection; } else { $customSubMap[ event_name ] = $customSubMap[ event_name ].add( $collection ); } };


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all (1)
三叔

绑定在元素上好像是用到了jquery的事件绑定,看你这个自定义事件是不是用在dom元素上的,如果只是模块间的传递第一种就可以了,如果是dom事件,就得放在元素上,触发方便。

    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!