Javascript 单击监听器以动态加载HTML
我试图用JavaScript动态加载菜单,然后在加载菜单元素后,将onclick事件侦听器设置为菜单元素。我似乎不知道该怎么做。我通过一个AJAX调用加载菜单,菜单内容加载得很好,但是当我像预期的那样单击菜单元素时,什么也没有发生 这是我的代码的一部分,我希望这是原因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
//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;