소스 검색

Add a new _type parameter for the first event argument

This will include the event type in the _type property, so it can be
accessed within the event handlers if it's not normally passed in. This
should not conflict with any existing handlers, and this should not be
considered a public property on event arguments.
Kevin Brown 9 년 전
부모
커밋
ad8447cc35
1개의 변경된 파일14개의 추가작업 그리고 0개의 파일을 삭제
  1. 14 0
      src/js/select2/utils.js

+ 14 - 0
src/js/select2/utils.js

@@ -124,9 +124,23 @@ define([
 
   Observable.prototype.trigger = function (event) {
     var slice = Array.prototype.slice;
+    var params = slice.call(arguments, 1);
 
     this.listeners = this.listeners || {};
 
+    // Params should always come in as an array
+    if (params == null) {
+      params = [];
+    }
+
+    // If there are no arguments to the event, use a temporary object
+    if (params.length === 0) {
+      params.push({});
+    }
+
+    // Set the `_type` of the first object to the event
+    params[0]._type = event;
+
     if (event in this.listeners) {
       this.invoke(this.listeners[event], slice.call(arguments, 1));
     }