这个 snap svg 插件有什么问题?
What is wrong with this snap svg plugin?
我有这个代码:
el.replace(/[0-9]*\.[0-9]*/g, function(x){ return (+x).toFixed(2) }) };
它在 trim 其小数位的单个 svg 路径上效果很好。现在我希望能够 trim 纸张(svg)中的所有路径。为此,我正在尝试在此处制作一个 snap svg 插件:
Snap.plugin(function(Snap, Element, Paper, glob){
Paper.prototype.trimPthDec = function(){
this.paper.selectAll('path').forEach( function(el) { el.trim() } ) ;
function trim(){
el.replace(/[0-9]*\.[0-9]*/g, function(x){ return (+x).toFixed(2) }) };
//return paper;
});
但是当我这样称呼它时它似乎不起作用:
// And use it like this to update the paper with new paths?!:
trimPthDec(); // I get this error: Uncaught ReferenceError: trimPthDec is not defined
有人能告诉我为什么它不起作用吗?
插件和代码有几处错误...主要是论文中的 运行,因此您需要在代码中正确引用该论文,并将函数作为原型调用,而不是一个独立的函数(所以 paper.func() 而不是 func() )
Snap.plugin(function(Snap, Element, Paper, glob){
Paper.prototype.trim = function(){
this.selectAll('path').forEach( function(el) {
el.attr('d') && el.attr({ 'd': el.attr('d').replace(/[0-9]*\.[0-9]*/g, function(x){ return (+x).toFixed(2) }) });
});
};
});
var s = Snap("#svg");
var block = s.path('M200.123345,43.2432');
s.trim();
alert(block.attr('d'));
我有这个代码:
el.replace(/[0-9]*\.[0-9]*/g, function(x){ return (+x).toFixed(2) }) };
它在 trim 其小数位的单个 svg 路径上效果很好。现在我希望能够 trim 纸张(svg)中的所有路径。为此,我正在尝试在此处制作一个 snap svg 插件:
Snap.plugin(function(Snap, Element, Paper, glob){
Paper.prototype.trimPthDec = function(){
this.paper.selectAll('path').forEach( function(el) { el.trim() } ) ;
function trim(){
el.replace(/[0-9]*\.[0-9]*/g, function(x){ return (+x).toFixed(2) }) };
//return paper;
});
但是当我这样称呼它时它似乎不起作用:
// And use it like this to update the paper with new paths?!:
trimPthDec(); // I get this error: Uncaught ReferenceError: trimPthDec is not defined
有人能告诉我为什么它不起作用吗?
插件和代码有几处错误...主要是论文中的 运行,因此您需要在代码中正确引用该论文,并将函数作为原型调用,而不是一个独立的函数(所以 paper.func() 而不是 func() )
Snap.plugin(function(Snap, Element, Paper, glob){
Paper.prototype.trim = function(){
this.selectAll('path').forEach( function(el) {
el.attr('d') && el.attr({ 'd': el.attr('d').replace(/[0-9]*\.[0-9]*/g, function(x){ return (+x).toFixed(2) }) });
});
};
});
var s = Snap("#svg");
var block = s.path('M200.123345,43.2432');
s.trim();
alert(block.attr('d'));