UNPKG

2.65 kBHTMLView Raw
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="utf-8">
5 <title>JSDoc: Source: events/eventbus.js</title>
6
7 <script src="scripts/prettify/prettify.js"> </script>
8 <script src="scripts/prettify/lang-css.js"> </script>
9 <!--[if lt IE 9]>
10 <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
11 <![endif]-->
12 <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
13 <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
14</head>
15
16<body>
17
18<div id="main">
19
20 <h1 class="page-title">Source: events/eventbus.js</h1>
21
22
23
24
25
26
27 <section>
28 <article>
29 <pre class="prettyprint source linenums"><code>/**
30 * Created by zhangmike on 16/10/18.
31 */
32export default function initEventBus(GMP) {
33 var events = {},
34 registerEvent = function(eName, handler, scope){
35 events[eName] = events[eName]||[];
36 events[eName].push({
37 scope: scope || this,
38 handler: handler
39 });
40 },
41 removeEvent = function(eName, callback, scope){
42 var fns = events[eName],
43 scope = scope || this;
44 if (!fns) {
45 return;
46 }
47 events[eName] = events[eName].filter(function(fn){
48 if (callback &amp;&amp; callback !== fn.callback ||
49 scope &amp;&amp; scope !== fn.scope
50 ) {
51 return true;
52 } else {
53 return false;
54 }
55 });
56 },
57 triggerEvent = function(eventName, params){
58 var fns = events[eventName],
59 i,
60 fn;
61 if (!fns) {
62 return;
63 }
64 for (var i = 0; fn = fns[i]; i++) {
65 fn.handler.apply(fns.scope, params || []);
66 }
67 };
68 GMP["GMPEvents"] = {
69 on: registerEvent,
70 off: removeEvent,
71 trigger: triggerEvent,
72 _events: events
73 };
74};</code></pre>
75 </article>
76 </section>
77
78
79
80
81</div>
82
83<nav>
84 <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="GMP.html">GMP</a></li></ul><h3>Global</h3><ul><li><a href="global.html#delegateEventSplitter">delegateEventSplitter</a></li><li><a href="global.html#uid">uid</a></li></ul>
85</nav>
86
87<br class="clear">
88
89<footer>
90 Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Wed Oct 19 2016 10:19:24 GMT+0800 (CST)
91</footer>
92
93<script> prettyPrint(); </script>
94<script src="scripts/linenumber.js"> </script>
95</body>
96</html>