Javascript 单击监听器以动态加载HTML

Javascript 单击监听器以动态加载HTML,javascript,ajax,onclick,onclicklistener,Javascript,Ajax,Onclick,Onclicklistener,我试图用JavaScript动态加载菜单,然后在加载菜单元素后,将onclick事件侦听器设置为菜单元素。我似乎不知道该怎么做。我通过一个AJAX调用加载菜单,菜单内容加载得很好,但是当我像预期的那样单击菜单元素时,什么也没有发生 这是我的代码的一部分,我希望这是原因 //Load Menu and main images window.onload = function() { load_menu(); } document.getElementById('menu').onl

我试图用JavaScript动态加载菜单,然后在加载菜单元素后,将onclick事件侦听器设置为菜单元素。我似乎不知道该怎么做。我通过一个AJAX调用加载菜单,菜单内容加载得很好,但是当我像预期的那样单击菜单元素时,什么也没有发生

这是我的代码的一部分,我希望这是原因

//Load Menu and main images
window.onload = function()
{
    load_menu();   
}

document.getElementById('menu').onload = function()
{
    document.getElementById('projects-button').onclick = load_projects_view();
}

//Load menu function
function load_menu()
{   
    request = getHTTPObject();
    request.onreadystatechange = append_menu;
    request.open("GET", "./php/menu.php", true);
    request.send(null);
}

//Load Project View
function load_projects_view()
{
    request = getHTTPObject();
    request.onreadystatechange = append_project_view;
    request.open("GET", "./php/project_view.php", true);
    request.send(null);
}

那么,当javascript行:

document.getElementById('menu').onload = ...
被执行。 该行在

window.onload
发生

我可能会称之为代码:

document.getElementById('projects-button').onclick = load_projects_view();
添加菜单项时(您的附加菜单功能?)

但这很难说,因为这只是一小段代码

另外,jQuery和dojo无疑是一条必由之路,而且我认为jQuery是获得该语言基础知识的一个非常好的起点,因为它隐藏了所有奇怪的浏览器行为。

删除此项

document.getElementById('menu').onload = function()
{
    document.getElementById('projects-button').onclick = load_projects_view();
}
并将其放在
附加菜单()的底部


这就是为什么要创建jQuery这样的库的一个主要例子。我知道有jQuery,但在开始实现之前,我想了解没有jQuery的语言是如何工作的……菜单中是否有“项目”按钮?是
document.getElementById('projects-button')。onclick=load\u projects\u view()你希望发射什么?是的<代码>项目按钮
位于动态加载的HTML(菜单)中。我希望在单击
projects按钮时执行另一个AJAX调用-
load\u projects\u view()
。@nathansizemore我完全支持您不愿意使用jQuery。即使您对自己的学习努力感到满意,jQuery在99%的时间里都是不必要的、笨重的拐杖。有没有一种方法可以在元素出现后执行函数?铬稳定
    document.getElementById('projects-button').onclick = load_projects_view;