我是Rapahel的新手,尝试单击它时想获取该元素的位置。请找到下面的代码段。这给我一个错误,指出this.attr不是一个函数。确定我做错了,请告知。
<html>
<head>
<title>Raphael Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="raphael.js"></script>
</head>
<body>
<script type="text/javascript">
window.onload = function initPage() {
var paper = new Raphael(document.getElementById('holder'), 1200, 500);
var nodeHeader = paper.rect(100,100,150,50,10);
nodeHeader.attr({
gradient: '90-#6BAA3A-#409400',
stroke: '#6BAA3A',
'stroke-width': 1,
cursor: "move"
});
nodeHeader.node.id='nodeHeader';
nodeHeader.node.onclick = function(){
alert(this.attr('x'));
};
};
</script>
<div id="holder"></div>
</body>
</html>
最佳答案
事件上下文中的“ this”对象为您提供DOM节点,而不是环绕其并包含Raphael功能的Element对象。您可以重用创建时声明的先前的Element变量,也可以按ID动态检索Element对象:
nodeHeader.node.onclick = function(){
// Re-use previous variable
alert(nodeHeader.attr("x"));
// Retrieve dynamically via ID
alert(paper.getById("nodeHeader").attr("x"));
};
关于javascript - 错误:尝试使用拉斐尔获取元素位置时,this.attr不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9905012/