Как получить идентификатор объекта Raphael при нажатии / наведении курсора, когда объекты хранятся в массиве - PullRequest
0 голосов
/ 15 марта 2012
var shapes = new Array();
var kx=50,ky=150;
var RecWidth=120;
var RecHeight=85;
var RecRadius=10;

r = Raphael(10,10, '60%', '100%');

for (var i=0; i<= 10; i++) {

 shapes[i]=r.rect(kx, ky, RecWidth, RecHeight,RecRadius);

 shapes[i].id="keylist"+i ;

 kx=kx+50;

 ky=ky+150;

}

приведенный выше код сгенерирует 10 прямоугольников Рафаэля на странице с разными идентификаторами.Теперь я хочу получить идентификатор, т. Е. Список ключей, по событию щелчка мышью или при наведении, чтобы на основе списка ключей я хотел показать всплывающее окно с дополнительной информацией, связанной с этим списком ключей.

Моя проблема заключается в том, что я не надеваюне знаете, как получить идентификатор объекта Raphael при клике / наведении курсора, когда объекты хранятся в массиве, например, здесь массив Shapes?.

1 Ответ

1 голос
/ 15 марта 2012

Если я правильно понимаю вашу проблему, вы можете определить обработчик событий click или hover следующим образом:

for (var i=0; i<= 10; i++) {    
 shapes[i]=r.rect(kx, ky, RecWidth, RecHeight,RecRadius);    
 shapes[i].id="keylist"+i;
 shapes[i].click(handleClick);
 shapes[i].hover(handleHoverIn, handleHoverOut);
 kx=kx+50;    
 ky=ky+150;    
}

function handleClick() {
    var id = this.id; // get your id
    // do something with your id    

}

// mouse enters the rectangle
function handleHoverIn() {
    var id = this.id; // get your id
    // do something with your id    

}

// mouse leaves the rectangle
function handleHoverOut() {
    var id = this.id; // get your id
    // do something with your id    

}

ОБНОВЛЕНИЕ:

Возможно, это jsFiddle поможет.

...