javascript onclick和方法

时间:2017-05-29 16:11:06

标签: javascript svg

我在JS中使用SVG.JS框架,我想为43元素添加onclick事件的方法。

selectColor

但是脚本无法找到它。

  

CircleEditor.html:1未捕获的TypeError:this.changeCircleColor不是   一个功能       在SVGRectElement.onclick(CircleEditor.html:1)

1 个答案:

答案 0 :(得分:2)

<强>更新

您的问题始于将函数处理程序传递给SVG元素的方式。

您使用 attr()方法设置的字符串。

如果您使用字符串,那么您可以做的事情非常有限。对于小例子或者只传递一小段代码(通常是整个函数),这是可以的。

当然,该函数应该是隔离的并且是自执行的,没有任何外部依赖性。

但是对于更多内容,你应该避免 attr()并使用建议的正确方法来绑定 svg.js上的事件

element.on('click', function() {
     // your code here.
});

您可以在文档页面中找到详细信息:http://svgjs.com/events/

现在关于内容,当点击事件被触发时会发生变化,因此您应该注意代码的这一部分。

设置处理程序的正确方法如下:

element.on('click', this.changeCircleColor);

不像字符串,而是对函数的引用(实际上是函数体)。

因此,您要将当前对象的函数指定为svg元素的事件处理程序。

如果您在事件处理函数中使用当前对象,您甚至应该将该函数绑定到您的对象:

element.on('click', this.changeCircleColor.bind(this));