我想從子元素事件觸發父元素中的自定義事件。父元素是HelpMenuHeader,它的自定義事件在HTML中定義爲「onsubmenu_click」。Javascript - 從子元素觸發自定義父級html事件
下面是僅顯示一個菜單樹的HTML代碼片段。
<span class="formMenu" id="HelpMenuHeader" onsubmenu_click="OnMenuClick()">Help
<div class="formMenu" id="HelpAbout" onmouseup="MenuChildClick()">About us...</div>
</span>
在子元素,HelpAbout的MenuChildClick事件需要觸發父母的onsubmenu_click事件,以便將執行(該事件處理程序使用父母的信息)。
下面是一段JavaScript代碼,我有MenuChildClick:
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);
}
}
我有讓在MenuChildClick事件正確的父元素的引用一個問題,因爲當我檢查父參考沒有父ID。
然後,一旦我有正確的父引用,我需要執行父母的onsubmenu_click自定義事件。 (父事件已經被聽取,因爲它是在HTML定義的,對吧?)
我要支持IE兼容性視圖,我需要爲以前的IE版本正常工作。
任何人都告訴我如何做這些事情(上面的1 & 2)離開HTML,因爲它是?
在此先感謝。
難道你不能在'MenuChildClick()'內調用'OnMenuClick()'嗎?此外,您並未定義'parent'元素(您正在尋找'$(srcElement).parent()'),並且您正在重寫'event' JavaScript關鍵字。 –
爲什麼不直接在'MenuChildClick()'上直接調用事件? – LebCit
我該如何稱呼父母的活動? 我無法直接調用OnMenuClick(),因爲它需要對父對象的引用,因爲它使用「事件」對象在父對象上執行大量操作。 – johnr2000