Ich habe eine Tabelle, und wenn der Benutzer auf jede Zelle klickt, sollten einige Details in einem kleinen Popup-Teil angezeigt werden, der dort erscheint, wo der Benutzer geklickt hat. Ich benutze JQuery, aber nicht um die Funktion an das onclick-Ereignis zu binden.event.pageX - Verwenden Sie JQuery Event in einer Funktion, die nicht durch JQuery gebunden ist?
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");
}
Alles funktioniert wunderbar in FF, Safari und Chrome. Im IE funktioniert alles, außer dass das Detail-Div unterhalb der Tabelle erscheint. event.pageX/Y funktionieren nicht. Ich weiß, JQuery wird die für IE beheben, wenn ich die Funktion durch JQuery wie diese binden:
$(cell).click(function(e) { ... e.pageX ... })
Aber ich kann das nicht tun. (Ich glaube nicht, dass ich das kann - wenn Sie das tun, bitte erläutern Sie, wie ich sechs Variablen in diese Funktion bekommen kann, ohne nicht-xhtml-Tags in der Zelle zu verwenden.)
Gibt es eine Möglichkeit, JQuery "reparieren zu lassen "das Ereignisobjekt, ohne die Funktion über JQuery zu binden? $ JQuery.fixEvent (Ereignis); oder so? Ich kann keinen Hinweis darauf finden, dies auf ihrer Website zu tun.
Vielen Dank im Voraus.
Das funktioniert, aber ich hoffe, dass es eine Möglichkeit gibt, die vorhandenen Funktionen von jQuery zu verwenden. –
Mmmmk Ich habe meine Antwort aktualisiert :) –
Das war's! Zwei großartige Antworten in einem. Vielen Dank! –