Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.

Commit 29a3d1f

Browse files
Merge pull request #2 from cburgdorf/master
Add support for jquery 1.6.*
2 parents 1b9523d + d4ae523 commit 29a3d1f

File tree

1 file changed

+95
-92
lines changed

1 file changed

+95
-92
lines changed

lib/rx.jquery.js

Lines changed: 95 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
*/
1515

1616
(function(global, $) {
17-
var root = global.Rx,
17+
var root = global.Rx,
1818
observable = root.Observable,
1919
observableProto = observable.prototype,
2020
asyncSubject = root.AsyncSubject,
@@ -45,18 +45,21 @@
4545
return deferred;
4646
};
4747

48-
$.Callbacks.prototype.toObservable = function () {
49-
var parent = this;
50-
return observableCreate(function (observer) {
51-
var handler = function(values) {
52-
observer.onNext(values);
53-
};
54-
parent.add(handler);
55-
return function () {
56-
parent.remove(handler);
48+
//in order to support jQuery 1.6.*
49+
if ($.Callbacks) {
50+
$.Callbacks.prototype.toObservable = function () {
51+
var parent = this;
52+
return observableCreate(function (observer) {
53+
var handler = function(values) {
54+
observer.onNext(values);
55+
};
56+
parent.add(handler);
57+
return function () {
58+
parent.remove(handler);
59+
};
60+
});
5761
};
58-
});
59-
};
62+
}
6063

6164
proto.onAsObservable = function (events, selector, data) {
6265
var parent = this;
@@ -72,9 +75,9 @@
7275
};
7376

7477
proto.bindAsObservable = function(eventType, eventData) {
75-
var parent = this;
78+
var parent = this;
7679
return observableCreate(function(observer) {
77-
var handler = function(eventObject) {
80+
var handler = function(eventObject) {
7881
observer.onNext(eventObject);
7982
};
8083
parent.bind(eventType, eventData, handler);
@@ -84,21 +87,21 @@
8487
});
8588
};
8689
proto.delegateAsObservable = function(selector, eventType, eventData) {
87-
var parent = this;
90+
var parent = this;
8891
return observableCreate(function(observer) {
89-
var handler = function(eventObject) {
92+
var handler = function(eventObject) {
9093
observer.onNext(eventObject);
9194
};
9295
parent.delegate(selector, eventType, eventData, handler);
9396
return function() {
9497
parent.undelegate(selector, eventType, handler);
9598
};
9699
});
97-
};
100+
};
98101
proto.liveAsObservable = function(eventType, eventData) {
99-
var parent = this;
102+
var parent = this;
100103
return observableCreate(function(observer) {
101-
var handler = function(eventObject) {
104+
var handler = function(eventObject) {
102105
observer.onNext(eventObject);
103106
};
104107
parent.live(eventType, eventData, handler);
@@ -109,131 +112,131 @@
109112
};
110113
proto.changeAsObservable = function (eventData) {
111114
return this.bindAsObservable('change', eventData);
112-
};
115+
};
113116
proto.clickAsObservable = function (eventData) {
114117
return this.bindAsObservable('click', eventData);
115118
};
116119
proto.dblclickAsObservable = function (eventData) {
117120
return this.bindAsObservable('dblclick', eventData);
118121
};
119-
proto.focusAsObservable = function(eventData) {
120-
return this.bindAsObservable('focus', eventData);
121-
};
122-
proto.focusinAsObservable = function(eventData) {
123-
return this.bindAsObservable('focusin', eventData);
124-
};
125-
proto.focusoutAsObservable = function(eventData) {
126-
return this.bindAsObservable('focusout', eventData);
127-
};
128-
proto.keydownAsObservable = function(eventData) {
129-
return this.bindAsObservable('keydown', eventData);
130-
};
131-
proto.keyupAsObservable = function(eventData) {
132-
return this.bindAsObservable('keyup', eventData);
133-
};
134-
proto.loadAsObservable = function(eventData) {
135-
return this.bindAsObservable('load', eventData);
136-
};
137-
proto.mousedownAsObservable = function(eventData) {
138-
return this.bindAsObservable('mousedown', eventData);
139-
};
140-
proto.mouseenterAsObservable = function(eventData) {
141-
return this.bindAsObservable('mouseenter', eventData);
142-
};
143-
proto.mouseleaveAsObservable = function(eventData) {
144-
return this.bindAsObservable('mouseleave', eventData);
145-
};
146-
proto.mousemoveAsObservable = function(eventData) {
147-
return this.bindAsObservable('mousemove', eventData);
148-
};
122+
proto.focusAsObservable = function(eventData) {
123+
return this.bindAsObservable('focus', eventData);
124+
};
125+
proto.focusinAsObservable = function(eventData) {
126+
return this.bindAsObservable('focusin', eventData);
127+
};
128+
proto.focusoutAsObservable = function(eventData) {
129+
return this.bindAsObservable('focusout', eventData);
130+
};
131+
proto.keydownAsObservable = function(eventData) {
132+
return this.bindAsObservable('keydown', eventData);
133+
};
134+
proto.keyupAsObservable = function(eventData) {
135+
return this.bindAsObservable('keyup', eventData);
136+
};
137+
proto.loadAsObservable = function(eventData) {
138+
return this.bindAsObservable('load', eventData);
139+
};
140+
proto.mousedownAsObservable = function(eventData) {
141+
return this.bindAsObservable('mousedown', eventData);
142+
};
143+
proto.mouseenterAsObservable = function(eventData) {
144+
return this.bindAsObservable('mouseenter', eventData);
145+
};
146+
proto.mouseleaveAsObservable = function(eventData) {
147+
return this.bindAsObservable('mouseleave', eventData);
148+
};
149+
proto.mousemoveAsObservable = function(eventData) {
150+
return this.bindAsObservable('mousemove', eventData);
151+
};
149152
proto.mouseoutAsObservable = function(eventData) {
150153
return this.bindAsObservable('mouseout', eventData);
151154
};
152-
proto.mouseoverAsObservable = function(eventData) {
153-
return this.bindAsObservable('mouseover', eventData);
154-
};
155-
proto.mouseupAsObservable = function(eventData) {
156-
return this.bindAsObservable('mouseup', eventData);
157-
};
158-
proto.resizeAsObservable = function(eventData) {
159-
return this.bindAsObservable('resize', eventData);
160-
};
161-
proto.scrollAsObservable = function(eventData) {
162-
return this.bindAsObservable('scroll', eventData);
163-
};
164-
proto.selectAsObservable = function(eventData) {
165-
return this.bindAsObservable('select', eventData);
166-
};
167-
proto.submitAsObservable = function(eventData) {
168-
return this.bindAsObservable('submit', eventData);
169-
};
170-
proto.unloadAsObservable = function(eventData) {
171-
return this.bindAsObservable('unload', eventData);
172-
};
155+
proto.mouseoverAsObservable = function(eventData) {
156+
return this.bindAsObservable('mouseover', eventData);
157+
};
158+
proto.mouseupAsObservable = function(eventData) {
159+
return this.bindAsObservable('mouseup', eventData);
160+
};
161+
proto.resizeAsObservable = function(eventData) {
162+
return this.bindAsObservable('resize', eventData);
163+
};
164+
proto.scrollAsObservable = function(eventData) {
165+
return this.bindAsObservable('scroll', eventData);
166+
};
167+
proto.selectAsObservable = function(eventData) {
168+
return this.bindAsObservable('select', eventData);
169+
};
170+
proto.submitAsObservable = function(eventData) {
171+
return this.bindAsObservable('submit', eventData);
172+
};
173+
proto.unloadAsObservable = function(eventData) {
174+
return this.bindAsObservable('unload', eventData);
175+
};
173176
proto.oneAsObservable = function(types, selector, data) {
174-
var parent = this;
177+
var parent = this;
175178
return observableCreateWithDisposable(function(observer) {
176-
var handler = function(eventObject) {
177-
parent.off(types, selector, data, handler);
179+
var handler = function(eventObject) {
180+
parent.off(types, selector, data, handler);
178181
observer.onNext(eventObject);
179-
observer.onCompleted();
182+
observer.onCompleted();
180183
};
181184
parent.on(types, selector, data, handler);
182185
return dispoableEmpty;
183186
});
184187
};
185188
proto.readyAsObservable = function() {
186-
var parent = this;
189+
var parent = this;
187190
return observableCreateWithDisposable(function(observer) {
188-
var handler = function(eventObject) {
191+
var handler = function(eventObject) {
189192
observer.onNext(eventObject);
190193
};
191194
parent.ready(handler);
192195
return dispoableEmpty;
193196
});
194-
};
197+
};
195198
proto.hideAsObservable = function(duration) {
196-
var subject = new asyncSubject();
199+
var subject = new asyncSubject();
197200
this.hide(duration, function() {
198201
subject.onNext(this);
199202
subject.onCompleted();
200203
});
201204
return subject;
202205
};
203206
proto.showAsObservable = function(duration, easing) {
204-
var subject = new asyncSubject();
207+
var subject = new asyncSubject();
205208
this.show(duration, function() {
206209
subject.onNext(this);
207210
subject.onCompleted();
208211
});
209212
return subject;
210213
};
211214
proto.animateAsObservable = function(properties, duration, easing) {
212-
var subject = new asyncSubject();
215+
var subject = new asyncSubject();
213216
this.animate(properties, duration, easing, function() {
214217
subject.onNext(this);
215218
subject.onCompleted();
216219
});
217220
return subject;
218221
};
219222
proto.fadeInAsObservable = function(duration, easing) {
220-
var subject = new asyncSubject();
223+
var subject = new asyncSubject();
221224
this.fadeIn(duration, easing, function() {
222225
subject.onNext(this);
223226
subject.onCompleted();
224227
});
225228
return subject;
226229
};
227230
proto.fadeToAsObservable = function(duration, opacity, easing) {
228-
var subject = new asyncSubject();
231+
var subject = new asyncSubject();
229232
this.fadeTo(duration, opacity, easing, function() {
230233
subject.onNext(this);
231234
subject.onCompleted();
232235
});
233236
return subject;
234237
};
235238
proto.fadeOutAsObservable = function(duration, easing) {
236-
var subject = new asyncSubject();
239+
var subject = new asyncSubject();
237240
this.fadeOut(duration, easing, function() {
238241
subject.onNext(this);
239242
subject.onCompleted();
@@ -247,25 +250,25 @@
247250
subject.onCompleted();
248251
});
249252
return subject;
250-
};
253+
};
251254
proto.slideDownAsObservable = function(duration) {
252-
var subject = new asyncSubject();
255+
var subject = new asyncSubject();
253256
this.slideDown(duration, function() {
254257
subject.onNext(this);
255258
subject.onCompleted();
256259
});
257260
return subject;
258261
};
259262
proto.slideUpAsObservable = function(duration) {
260-
var subject = new asyncSubject();
263+
var subject = new asyncSubject();
261264
this.slideUp(duration, function() {
262265
subject.onNext(this);
263266
subject.onCompleted();
264267
});
265268
return subject;
266269
};
267270
proto.slideToggleAsObservable = function(duration) {
268-
var subject = new asyncSubject();
271+
var subject = new asyncSubject();
269272
this.slideToggle(duration, function() {
270273
subject.onNext(this);
271274
subject.onCompleted();
@@ -295,14 +298,14 @@
295298
};
296299
$.getAsObservable = function(url, data, dataType) {
297300
return ajaxAsObservable({ url: url, dataType: dataType, data: data });
298-
};
301+
};
299302
$.getJSONAsObservable = function(url, data) {
300303
return ajaxAsObservable({ url: url, dataType: 'json', data: data });
301304
};
302305
$.getScriptAsObservable = function(url) {
303306
return ajaxAsObservable({ url: url, dataType: 'script'});
304-
};
305-
$.postAsObservable = function(url, data, dataType) {
307+
};
308+
$.postAsObservable = function(url, data, dataType) {
306309
return ajaxAsObservable({ url: url, dataType: dataType, data: data, type: 'POST'});
307-
};
310+
};
308311
})(this, jQuery);

0 commit comments

Comments
 (0)