mirror of
https://github.com/konvajs/konva.git
synced 2026-01-22 03:11:53 +08:00
remove all events with node.off()
This commit is contained in:
@@ -389,10 +389,16 @@
|
||||
* node.off('click.foo');
|
||||
*/
|
||||
off: function(evtStr) {
|
||||
var events = evtStr.split(SPACE),
|
||||
var events = (evtStr || '').split(SPACE),
|
||||
len = events.length,
|
||||
n, t, event, parts, baseEvent, name;
|
||||
|
||||
if (!evtStr) {
|
||||
// remove all events
|
||||
for(t in this.eventListeners) {
|
||||
this._off(t);
|
||||
}
|
||||
}
|
||||
for(n = 0; n < len; n++) {
|
||||
event = events[n];
|
||||
parts = event.split(DOT);
|
||||
|
||||
@@ -1761,6 +1761,20 @@ suite('Node', function() {
|
||||
assert.equal(circle.eventListeners['click'], undefined);
|
||||
assert.equal(circle.eventListeners['touch'], undefined);
|
||||
|
||||
|
||||
// test remove all events
|
||||
circle.on('click.kinetic', function() {
|
||||
});
|
||||
circle.on('click', function() {
|
||||
});
|
||||
circle.on('boo', function() {
|
||||
});
|
||||
assert.equal(circle.eventListeners['click'].length, 2);
|
||||
assert.equal(circle.eventListeners['boo'].length, 1);
|
||||
circle.off();
|
||||
assert.equal(circle.eventListeners['boo'], undefined);
|
||||
// should not remove kinetic listeners
|
||||
assert.equal(circle.eventListeners['click'].length, 1);
|
||||
stage.add(layer);
|
||||
layer.add(circle);
|
||||
layer.draw();
|
||||
|
||||
Reference in New Issue
Block a user