Рафаэль не находит элемент на странице asp.net, используя jquery - PullRequest
0 голосов
/ 25 июня 2011

Я новичок в 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 ]

1 голос
/ 25 июня 2011

Попробуйте это:

var thisDoeNotWorkA = Raphael('imgMap', 200, 200);

Спецификация в http://raphaeljs.com/reference.html#Raphael говорит, что вы хотите передать идентификатор узла.

РЕДАКТИРОВАТЬ: если это не работает, то этовозможно, что идентификатор элемента был изменен чем-то другим?

0 голосов
/ 26 июня 2011

Я никогда не видел, чтобы кто-нибудь пытался сделать холст Raphael из тега изображения. Почему бы вам не использовать обычный div и расположить его там, где вам нравится?

thisDoesWork = Raphael (document.getElementById ('imgMapDiv'), 200, 200);

Чарльз

http://www.irunmywebsite.com

...