mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +00:00
zjquery: Fix ‘this’ parameter of invoked handlers.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
committed by
Tim Abbott
parent
366cb30db1
commit
af3a79ab31
@@ -15,7 +15,7 @@ exports.make_event_store = (selector) => {
|
|||||||
const on_functions = new Map();
|
const on_functions = new Map();
|
||||||
const child_on_functions = new Map();
|
const child_on_functions = new Map();
|
||||||
|
|
||||||
function generic_event(event_name, arg) {
|
function generic_event($element, event_name, arg) {
|
||||||
if (typeof arg === "function") {
|
if (typeof arg === "function") {
|
||||||
on_functions.set(event_name, arg);
|
on_functions.set(event_name, arg);
|
||||||
} else {
|
} else {
|
||||||
@@ -24,7 +24,7 @@ exports.make_event_store = (selector) => {
|
|||||||
const error = "Cannot find " + event_name + " handler for " + selector;
|
const error = "Cannot find " + event_name + " handler for " + selector;
|
||||||
throw Error(error);
|
throw Error(error);
|
||||||
}
|
}
|
||||||
handler(arg);
|
handler.call($element, arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@ exports.make_event_store = (selector) => {
|
|||||||
child_on.set(event_name, handler);
|
child_on.set(event_name, handler);
|
||||||
},
|
},
|
||||||
|
|
||||||
trigger: function (ev) {
|
trigger: function ($element, ev) {
|
||||||
const ev_name = typeof ev === "string" ? ev : ev.name;
|
const ev_name = typeof ev === "string" ? ev : ev.name;
|
||||||
const func = on_functions.get(ev_name);
|
const func = on_functions.get(ev_name);
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ exports.make_event_store = (selector) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
func(ev.data);
|
func.call($element, ev.data);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ exports.make_new_elem = function (selector, opts) {
|
|||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
click: function (arg) {
|
click: function (arg) {
|
||||||
event_store.generic_event("click", arg);
|
event_store.generic_event(self, "click", arg);
|
||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
data: function (name, val) {
|
data: function (name, val) {
|
||||||
@@ -264,11 +264,11 @@ exports.make_new_elem = function (selector, opts) {
|
|||||||
return focused;
|
return focused;
|
||||||
},
|
},
|
||||||
keydown: function (arg) {
|
keydown: function (arg) {
|
||||||
event_store.generic_event("keydown", arg);
|
event_store.generic_event(self, "keydown", arg);
|
||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
keyup: function (arg) {
|
keyup: function (arg) {
|
||||||
event_store.generic_event("keyup", arg);
|
event_store.generic_event(self, "keyup", arg);
|
||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
off: function (...args) {
|
off: function (...args) {
|
||||||
@@ -323,7 +323,7 @@ exports.make_new_elem = function (selector, opts) {
|
|||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
select: function (arg) {
|
select: function (arg) {
|
||||||
event_store.generic_event("select", arg);
|
event_store.generic_event(self, "select", arg);
|
||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
set_find_results: function (find_selector, jquery_object) {
|
set_find_results: function (find_selector, jquery_object) {
|
||||||
@@ -355,7 +355,7 @@ exports.make_new_elem = function (selector, opts) {
|
|||||||
return text;
|
return text;
|
||||||
},
|
},
|
||||||
trigger: function (ev) {
|
trigger: function (ev) {
|
||||||
event_store.trigger(ev);
|
event_store.trigger(self, ev);
|
||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
val: function (...args) {
|
val: function (...args) {
|
||||||
|
|||||||
Reference in New Issue
Block a user