2017-12-03 438 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')或類似的東西)