javascript onclick和方法
我将SVG.JS框架用于JS,我想为javascript onclick和方法,javascript,svg,Javascript,Svg,我将SVG.JS框架用于JS,我想为onclick事件添加方法,用于selectColor元素 changeCircleColor:function(){ this.circleColor=提示(“为圆选择颜色”); }, 视图:函数(){ var view=SVG('viewCircle')。大小(300300)。样式({ 背景:“黑色” }); var circle=view.circle(280.attr)({ 填充:这是圆环色, cx:“150”, 赛义德:“150” }); var s
onclick
事件添加方法,用于selectColor
元素
changeCircleColor:function(){
this.circleColor=提示(“为圆选择颜色”);
},
视图:函数(){
var view=SVG('viewCircle')。大小(300300)。样式({
背景:“黑色”
});
var circle=view.circle(280.attr)({
填充:这是圆环色,
cx:“150”,
赛义德:“150”
});
var selectColor=view.rect(30,30).attr({
填充:“白色”,
x:“270”,
y:“270”,
笔画:“黑色”,
onclick:“this.changeCircleColor()”
})
},
但脚本找不到它
CircleEditor.html:1未捕获类型错误:this.changeCircleColor不可用
函数
在SVGRectElement.onclick(CircleEditor.html:1)
更新 您的问题始于将函数处理程序传递给SVG元素的方式 在attr()方法上使用字符串集 如果你使用字符串,你能做的事情非常有限。这对于小示例来说是可以的,或者如果您只传递一小段代码,通常是整个函数 当然,该函数应该是独立的和自执行的,没有任何外部依赖性 但要了解更多信息,您应该避免使用attr()并使用建议的适当方法绑定svg.js上的事件: 您可以在文档页面中找到详细信息: 现在,关于这个内容,当点击事件被触发时,它会被更改,所以您应该注意代码的这一部分 设置处理程序的正确方法如下:
element.on('click', this.changeCircleColor);
不像字符串,而是对函数(实际上是函数体)的引用
因此,您将把当前对象的函数指定为svg元素的事件处理程序
如果在事件处理程序函数中使用当前对象,则甚至应将函数绑定到对象:
element.on('click', this.changeCircleColor.bind(this));
更新 您的问题始于将函数处理程序传递给SVG元素的方式 在attr()方法上使用字符串集 如果你使用字符串,你能做的事情非常有限。这对于小示例来说是可以的,或者如果您只传递一小段代码,通常是整个函数 当然,该函数应该是独立的和自执行的,没有任何外部依赖性 但要了解更多信息,您应该避免使用attr()并使用建议的适当方法绑定svg.js上的事件: 您可以在文档页面中找到详细信息: 现在,关于这个内容,当点击事件被触发时,它会被更改,所以您应该注意代码的这一部分 设置处理程序的正确方法如下:
element.on('click', this.changeCircleColor);
不像字符串,而是对函数(实际上是函数体)的引用
因此,您将把当前对象的函数指定为svg元素的事件处理程序
如果在事件处理程序函数中使用当前对象,则甚至应将函数绑定到对象:
element.on('click', this.changeCircleColor.bind(this));
因为
此
指向窗口,但不指向对象。。如果将此对象指定给窗口
,则可以通过onclick
属性调用它。因为此
指向窗口而不是对象。。如果您将此对象指定给窗口
,因为您可以通过onclick
属性调用它。您能解释更多吗?我想这和我的回答是一样的。AttributeonClick
get string“this.changecirlecolor()”
,这样你就可以;不要将其绑定为空,事件处理程序会获取一个事件,这样您就可以将其绑定到对象。对了,这一部分似乎应该得到更详细的解释。我试着去做并更新我的答案。谢谢你告诉我这件事。请看一看,如果有什么不对劲,请告诉我。看起来更好:)你能解释更多吗?我想这和我的回答是一样的。AttributeonClick
get string“this.changecirlecolor()”
,这样你就可以;不要将其绑定为空,事件处理程序会获取一个事件,这样您就可以将其绑定到对象。对了,这一部分似乎应该得到更详细的解释。我试着去做并更新我的答案。谢谢你告诉我这件事。请看一看,如果有什么问题请告诉我。看起来更好:)