From a78f01365d21ee1cd0b37839b388dd426b53af98 Mon Sep 17 00:00:00 2001 From: lavrton Date: Thu, 15 Jan 2015 09:41:29 +0700 Subject: [PATCH] fix name selector bug. close #3 --- src/Global.js | 12 +++++++----- test/unit/Container-test.js | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/Global.js b/src/Global.js index ac63cf0f..0586853e 100644 --- a/src/Global.js +++ b/src/Global.js @@ -293,13 +293,15 @@ var Kinetic = {}; }, _addName: function(node, name) { if(name !== undefined) { - var names = name.split(/\W+/g); + + var names = name.split(/\s/g); for(var n = 0; n < names.length; n++) { - if (names[n]) { - if(this.names[names[n]] === undefined) { - this.names[names[n]] = []; + var subname = names[n]; + if (subname) { + if(this.names[subname] === undefined) { + this.names[subname] = []; } - this.names[names[n]].push(node); + this.names[subname].push(node); } } } diff --git a/test/unit/Container-test.js b/test/unit/Container-test.js index 8240e337..b467bc34 100644 --- a/test/unit/Container-test.js +++ b/test/unit/Container-test.js @@ -206,6 +206,29 @@ suite('Container', function() { }); + // ====================================================== + test('select shape by name with "-" char', function() { + var stage = addStage(); + var layer = new Kinetic.Layer(); + + var rect = new Kinetic.Rect({ + x: 300, + y: 100, + width: 100, + height: 50, + fill: 'purple', + stroke: 'black', + strokeWidth: 4, + name: 'bounding-box' + }); + + layer.add(rect); + stage.add(layer); + + var node = stage.find('.bounding-box')[0]; + assert.equal(node, rect); + }); + // ====================================================== test('select shapes with multiple selectors', function() { var stage = addStage();