2013-04-16 3 views
3

С Рафаэлем я могу получить ссылку на DOM-объект элемента, используя следующий код:Как я могу получить элемент raphael объекта DOM, который создается с помощью raphael?

element.node 

Как я могу получить элемент, связанный с объектом DOM? Другими словами, обратная функция выше (например, DOMobject.element).

ответ

5

Узел, созданный с помощью RaphaelJS, имеет свойство raphaelid или что-то очень близкое, вы можете войти в Chrome DevTools или аналогичный.

Поскольку вы знаете, этот конкретный идентификатор и у вас есть ссылка на Paper например Рафаэль как paper переменной, например, вы получите элемент с:

paper.getById(node.raphaelid) 

На самом деле, это совершенно без документов. Только метод getById документирована в обновлении RaphaelJS documentation (Paper.getById section)

для комментариев по поводу не в состоянии получить raphaelid на элемент DOM

Пожалуйста, посмотрите на это jsfiddle about getting raphaelid.

HTML

<div id="c"></div> 
<div><code>rect.node.raphaelid</code> : <span id="i"></span></div> 
<div><code>rect2.node.raphaelid</code> : <span id="i2"></span></div> 

JS

var paper = Raphael(c,400,400); 

var rect = paper.rect(100,100,200,200); 
var rect2 = paper.rect(150,150,200,200); 

i.textContent = rect.node.raphaelid; 
i2.textContent = rect2.node.raphaelid; 

результат Текст

rect.node.raphaelid: 0

rect2.node.raphaelid: 1

Все это с версии 2.1.0 от RaphaelJS

+0

И как я могу получить Рафаэлем идентификатор элемента, который соответствует DOMobject, когда я только детали DOMobject? –

+1

Этот идентификатор raphael является опорой DOMобъекта. Я проверю точное имя, как только у меня будет pc – lib3d

+1

Проверено: Raphael добавляет свойство 'raphaelid' в элемент DOM, который вы можете использовать, чтобы вернуть элемент Raphael из' paper'. – lib3d