当我在点击事件中时,我想在单个 Raphael 元素(例如圆圈)上运行该函数。如何定位该单个元素而不是页面上的所有圆圈?
jQuery 选择器 -$(this).animate({ opacity: 0.2}, 2000);
我需要知道等价物$(this)
是什么。或者是否有另一种选择该元素的方法?
当我在点击事件中时,我想在单个 Raphael 元素(例如圆圈)上运行该函数。如何定位该单个元素而不是页面上的所有圆圈?
jQuery 选择器 -$(this).animate({ opacity: 0.2}, 2000);
我需要知道等价物$(this)
是什么。或者是否有另一种选择该元素的方法?
如果您使用 Raphael 本身附加一个事件,那么this
是否是 Raphael 包装的元素(即this
默认情况下相当于 $(selector))。
例如
paper.rect(50, 50, 50, 50)
.attr('fill', '#000')
.click(function () {
// `this` is the rect Raphael object
this.attr('fill', '#ff0000'); // turn the clicked rect red
});
要实现 jQuery 样式的包装器,需要一个弱映射实现,而这些往往会泄漏。最好使用 Raphael api 将事件附加到 SVG 元素,而不是直接将事件附加到节点。
示例:http: //jsfiddle.net/FyM7z/
this
在 jQuery 的情况下只是指 DOM 元素并且可以有很多上下文。没有等价的说法,如果你在画布元素上创建一个新的 Raphael 实例,var instance = new Raphael(canvasEl, 100, 100 )
并且你想稍后引用画布,你必须将它缓存在一个变量中并在整个代码中使用它。
如果您正在使用 Raphael 创建路径并想要存储它们,请将它们分配给一个变量,例如 var square = raphaelCanvas.rect(20,20,20,20)
.