Raphael没有使用jquery在asp.net页面上找到元素

时间:2011-06-25 14:55:31

标签: jquery raphael

我是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>

2 个答案:

答案 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);

查尔斯

http://www.irunmywebsite.com