【发布时间】:2013-01-19 20:13:42
【问题描述】:
我正在尝试像这样加载我的导航栏:
$.get("nav.html",function(menuData){
$("body").html(menuData);
)};
在“nav.html”中我们有类似的东西
<td id='menu-item-1'>menu item 1</td>
<td id='menu-item-2'>menu item 2</td>
等等。那么我想为每个项目分配一个事件,我已经尝试过:
$("#menu-item-1").mousedown(function(response){
//create an empty table
$("body").append("table id='menu-item-1-sub-table'></table>");
//retrieve php data and insert it in the table
$.get("data.php",function(response){
$("#menu-item-1-sub-table").html(response);
});
});
问题是事件不会触发。当我将 html 直接放在 javascript 中时,它就起作用了,例如:
$("body").append("<table><tr><td id='menu-item-1'>menu-item-1</td></tr></table>");
但在将其移至另一个文件后,它不再起作用。
编辑
这是一个有效的答案:
使用
$("body").on('click','#menu-item-1',function(){
etc.
});
因为我们尝试时尚未创建 menu-item-1
$("#menu-item-1).mousedown
【问题讨论】:
-
哪个文件中有
$("#menu-item-1").mousedown(...javascript? -
所有的javascript都在一个文件中。也是按照我发布的顺序:第一个块在 document.ready 之后,第三个块在它下面,然后 document.ready 被关闭。
-
欢迎来到stackoverflow。在此 QA 站点中,当实现答案时,我们不会在问题标题后附加“(已解决)”。相反,我们通过单击该答案左上角的复选框来标记正确答案。如果您自己想出了答案,然后发布您自己的答案,给它一些时间,如果没有人有更好的答案(您的判断),您可以在 48 小时的等待期后接受自己的答案。
-
谢谢,几年前我有一个帐户,我记得当时看到过。我很抱歉。
标签: javascript jquery events dynamic mousedown