У меня есть таблица, и когда пользователь нажимает на каждую ячейку, некоторые детали должны появиться в небольшом всплывающем элементе div, который появляется там, где пользователь щелкнул. Я использую jQuery, но не для привязки функции к событию onClick.
function detailPopup(cell, event, groupName, groupID, ...)
{
var newDiv = document.createElement("div");
newDiv.id = "detailPop" + groupID;
newDiv.className = "priceDetailPopup";
newDiv.innerHTML = "<p>" + groupName + "</p>"; // more will go here
$(newDiv).click(function()
{
$(this).fadeOut("fast").remove();
}
);
$("#main").append(newDiv);
$(newDiv).css({"left" : event.pageX, "top" : event.pageY}).fadeIn("fast");
}
Все прекрасно работает в FF, Safari и Chrome. В IE все это работает, за исключением того, что подробный div отображается под таблицей. event.pageX / Y не работают. Я знаю, jQuery исправит их для IE, если я свяжу функцию через jQuery следующим образом:
$(cell).click(function(e) { ... e.pageX ... })
Но я не могу этого сделать. (Я не думаю, что смогу - если вы это сделаете, пожалуйста, объясните, как я могу получить шесть переменных в эту функцию, не используя теги не-xhtml в ячейке.)
Есть ли способ заставить jQuery "исправить" объект события без привязки функции через jQuery? $ JQuery.fixEvent (событие); или что-то? Я не могу найти ссылки на это на их сайте.