2017-12-03 284 views
0

我想删除或隐藏svg,我双击。jQuery删除或隐藏画布上的所有svg

var draw = SVG('output').size(1000, 500); 

var table = draw.circle(50) 
.fill('#00ff0000') 
.stroke('black')] 
.center(50, 50); 
table.attr("class", "table"); 

$("svg").on('dblclick',function(event){ 
      $(".table").hide(); 
     }); 

var desk = draw.rect(50,50) 
.fill('green') 
.stroke('black') 
.move(100,0); 
desk.attr("class", "desk"); 

$("svg").on('dblclick',function(event){ 
      $(".desk").hide(); 
     }); 

var chair = draw.rect(50,50) 
.fill('green') 
.stroke('black') 
.move(200,0); 
desk.attr("class", "chair"); 

$("svg").on('dblclick',function(event){ 
      $(".chair").hide(); 
     }); 


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/2.6.3/svg.min.js"></script> 
<div id="output"></div> 

我想隐藏我双击了一个,但现在的结果是,所有的人都被隐藏,如果我双击其中的任何一个。即使我双击画布的空白区域,也会隐藏所有SVG图像。

回答

1

当你写$("svg"),为目标的页面上每一个SVG元素。 运行此代码时$("svg").on('dblclick',function(event){ $(".table").hide(); });例如, 每个页面上的SVG得到"dblclick"事件隐藏".table"。为了解决这个问题,而不是在全球范围选择所有的SVG元素,使用CSS选择器https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors只抓取与你给它的类的SVG(例如,也许你想$("svg.table").on('dblclick')或类似的东西)