Ich versuche, ein benutzerdefiniertes Ereignis in einem übergeordneten Element aus dem Kind Elemente Ereignis auszulösen. Das übergeordnete Element ist HelpMenuHeader und das benutzerdefinierte Ereignis wird in HTML als "onsubmenu_click" definiert.Javascript - triggern benutzerdefinierte Eltern HTML-Ereignis von Kind Element
Hier ist ein Ausschnitt des HTML, der nur einen Menübaum zeigt.
<span class="formMenu" id="HelpMenuHeader" onsubmenu_click="OnMenuClick()">Help
<div class="formMenu" id="HelpAbout" onmouseup="MenuChildClick()">About us...</div>
</span>
Im Kind-Element, Helpabout, muss das MenuChildClick Ereignis der Eltern onsubmenu_click Ereignis auszulösen, so dass das (die Event-Handler der Eltern Informationen verwendet) ausgeführt wird.
Hier ist ein Ausschnitt aus der JavaScript-I für MenuChildClick habe:
function MenuChildClick()
{
var srcElement = this.event.srcElement;
if (srcElement.id != "spacer" && srcElement.tagName != "HR")
{
// NONE OF THE LINES BELOW WORK
//parent.$(srcElement).trigger('onsubmenu_click');
//$(srcElement).trigger('onsubmenu_click');
//var event = document.createEvent('Event');
//event.initEvent('submenu_click', true, true, null);
//srcElement.dispatchEvent(event);
//oEvent = createEventObject();
//oEvent.result = srcElement.id;
//onsubmenu_click.fire(oEvent);
}
}
ich einen Verweis auf das richtige übergeordnete Element in dem MenuChildClick Ereignisse ein Problem mit immer da, wenn ich die übergeordneten Referenz überprüfen hat nicht die Eltern-ID.
Und sobald ich die richtige Elternreferenz habe, muss ich das benutzerdefinierte Ereignis onsubmenu_click des Elterns ausführen. (Die Mutter Ereignis wird bereits angehört, da es in der HTML definiert ist, nicht wahr?)
Ich habe IE Kompatibilitätsansicht zu unterstützen, damit ich es brauche auch für frühere IE-Versionen zu arbeiten.
Wer mir sagen, wie ich diese Dinge tun kann (1 & 2 oben) Verlassen der HTML wie es ist?
Vielen Dank im Voraus.
Kann man 'OnMenuClick()' nicht innerhalb von 'MenuChildClick()' aufrufen? Außerdem definieren Sie nicht das Element 'parent' (Sie suchen nach '$ (srcElement) .parent()') und überschreiben das JavaScript-Schlüsselwort 'event'. –
Warum rufst du das Ereignis nicht direkt auf 'MenuChildClick()'? – LebCit
Wie rufe ich das Ereignis der Eltern an? Ich kann OnMenuClick() nicht direkt aufrufen, weil es einen Verweis auf das übergeordnete Element benötigt, da es das Objekt "event" verwendet, um eine Menge Material auf dem übergeordneten Objekt zu erstellen. – johnr2000