我是Raphael的新手,在使用现有元素创建Raphael对象时遇到了问题。
下面的代码显示了我尝试过的内容以及每个人创建的错误。理想情况下,我想在初始调用Raphael时使用jquery来创建对象。
非常感谢任何帮助。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="Fleetstar.UI.WebForm2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="js/raphael.js" type="text/javascript"></script>
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var thisWorks = document.getElementById('imgMap'); // This works
var thisAlsoWorks = $('.mapClass'); //thsi.works
var thisDoeNotWorkA = Raphael(document.getElementById('imgMap'), 200, 200); //Error: Unexpected call to method or property access.
var thisDoeNotWorkB = Raphael(document.getElementById('imgMap')[0], 200, 200); //Error: 'tagName' is null or not an object
var thisDoeNotWorkC = Raphael(document.getElementById('imgMap').node, 200, 200); //// Error: 'tagName' is null or not an object
var thisDoeNotWorkD = Raphael($('.mapClass'), 200, 200); //Error: 'container' is null or not an object
var thisDoeNotWorkE = Raphael($('.mapClass').node, 200, 200); // Error: 'tagName' is null or not an object
var thisDoeNotWorkF = Raphael($('.mapClass')[0], 200, 200); //Error: Unexpected call to method or property access.
var thisDoeNotWorkG = Raphael($('[id$="imgMap"]'), 200, 200); // Error: 'container' is null or not an object
var thisDoeNotWorkH = Raphael($('[id$="imgMap"]')[0], 200, 200); //Error: Unexpected call to method or property access.
var thisDoeNotWorkI = Raphael($('[id$="imgMap"]').node, 200, 200); //Error: 'tagName' is null or not an object
});
</script>
</head>
<body>
<form id="form1" runat="server">
<img class="mapClass" id="imgMap" name="imgMapName" style="position: absolute" src="Images/map.gif"
alt="" />
</form>
答案 0 :(得分:1)
试试这个:
var thisDoeNotWorkA = Raphael('imgMap', 200, 200);
http://raphaeljs.com/reference.html#Raphael处的规范表示您要传递节点ID。
编辑:如果这不起作用,那么元素ID可能被其他东西修改了吗?
答案 1 :(得分:0)
我从未见过有人试图从图片标签制作拉斐尔画布。 你为什么不使用普通的div并把它放在你喜欢的地方?
thisDoesWork = Raphael(document.getElementById('imgMapDiv'),200,200);
查尔斯