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 | |
10 |
|
11 |
|
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 | */
|
32 | export 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 && callback !== fn.callback ||
|
49 | scope && 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>
|