[Pkg-javascript-commits] [backbone] 153/281: view events can now be a function that returns an events object
Jonas Smedegaard
js at moszumanska.debian.org
Sat May 3 17:02:07 UTC 2014
This is an automated email from the git hooks/post-receive script.
js pushed a commit to tag 0.9.0
in repository backbone.
commit b081fe87a5506d71b50142be846bb15207fcc823
Author: Zack Owens <ztowens at indiana.edu>
Date: Sat Jan 7 10:17:57 2012 -0500
view events can now be a function that returns an events object
---
backbone.js | 1 +
test/view.js | 27 ++++++++++++++++++++++-----
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/backbone.js b/backbone.js
index e85eb52..f07f80f 100644
--- a/backbone.js
+++ b/backbone.js
@@ -940,6 +940,7 @@
// not `change`, `submit`, and `reset` in Internet Explorer.
delegateEvents : function(events) {
if (!(events || (events = getValue(this, 'events')))) return;
+ if (_.isFunction(events)) events = _.bind(events, this)();
this.undelegateEvents();
for (var key in events) {
var method = events[key];
diff --git a/test/view.js b/test/view.js
index 97fe632..4ed9274 100644
--- a/test/view.js
+++ b/test/view.js
@@ -57,17 +57,34 @@ $(document).ready(function() {
});
test("View: delegateEvents allows functions for callbacks", function() {
- var counter = 0;
+ view.counter = 0;
view.el = "#qunit-banner";
- var events = {"click": function() { counter++; }};
+ var events = {"click": function() { this.counter++; }};
view.delegateEvents(events);
$('#qunit-banner').trigger('click');
- equals(counter, 1);
+ equals(view.counter, 1);
$('#qunit-banner').trigger('click');
- equals(counter, 2);
+ equals(view.counter, 2);
view.delegateEvents(events);
$('#qunit-banner').trigger('click');
- equals(counter, 3);
+ equals(view.counter, 3);
+ });
+
+ test("View: delegateEvents allows function as events arg", function() {
+ view.counter = 0;
+ view.el = "#qunit-banner";
+ var events = function () {
+ return {"click": this.click};
+ };
+ view.click = function() { this.counter++; };
+ view.delegateEvents(events);
+ $('#qunit-banner').trigger('click');
+ equals(view.counter, 1);
+ $('#qunit-banner').trigger('click');
+ equals(view.counter, 2);
+ view.delegateEvents(events);
+ $('#qunit-banner').trigger('click');
+ equals(view.counter, 3);
});
test("View: undelegateEvents", function() {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/backbone.git
More information about the Pkg-javascript-commits
mailing list