Захват позиции курсора в javascript, встроенный в элемент

Я пытаюсь сделать всплывающее окно div рядом с мышью при наведении курсора на ячейку таблицы.

<td onmouseover="bubblePopup("param1","param2");">This is the cell</td>

Можно ли получить позицию курсора с помощью моей функции bubblePopup.

function bubblePopup(param1, param2){
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', param1);

    newdiv.style.width = "200px";
    newdiv.style.height = "80px";

    newdiv.style.position = "absolute";
    newdiv.style.left = cursorX + "px";
    newdiv.style.top = cursorY + "px";

    newdiv.innerHTML = "content";
    document.body.appendChild(newdiv);
}

Я бы предпочел собственный javascript (но также рассмотрю варианты jquery). Он должен работать только в Firefox 3.5 и выше.


person Mike    schedule 11.02.2011    source источник


Ответы (2)


Я слепил скрипку, которая может направить вас на правильный путь.

http://www.jsfiddle.net/dduncan/WccJw/2/

(Отредактировано, чтобы немного приукрасить)

person Dai    schedule 11.02.2011
comment
Любые предложения о том, как я могу заставить событие уничтожения происходить только тогда, когда курсор не находится над ячейкой таблицы или вновь созданным div, чтобы я мог щелкать ссылки в div? - person Mike; 11.02.2011

http://jsfiddle.net/CtCXE/

var td = document.getElementById("thetd");

td.onmouseover = function(e){bubblePopup(e, 'param1','param2')};

function bubblePopup(e, param1, param2){
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', param1);

    newdiv.style.width = 200;
    newdiv.style.height = 80;

    var cursorX = e.pageX,
        cursorY = e.pageY;

    newdiv.style.position = "absolute";
    newdiv.style.left = cursorX + 'px';
    newdiv.style.top = cursorY + 'px';

    newdiv.innerHTML = "content";
    document.body.appendChild(newdiv);
}
person Loktar    schedule 11.02.2011