$(function() {
$.get("../file/test.xml", function(data) {
var data = $(data).find("root").find("menu");
data.each(function() {
var addmenu = "<li><a href='#'>"+$(this).attr("id")+"</a></li>";
var t = $("body ul").append(addmenu);
})
$("body ul li").addClass("menu");
data.each(function(i){
var submenu="<ul>";
data.eq(i).find("submenu").each(function(){
var tab = "<li><a href='#'>"+$(this).text()+"</a></li>";
submenu = submenu+tab;
})
submenu =submenu+"</ul>";
$(".menu").eq(i).append(submenu);
})
}) $("body ul li a").on("click",function(){
alert("aaa");
var node = $(this).next();
if(node.css("display")=="none"){
node.show();
}else{
node.hide();
}
})
})
$.get("../file/test.xml", function(data) {
var data = $(data).find("root").find("menu");
data.each(function() {
var addmenu = "<li><a href='#'>"+$(this).attr("id")+"</a></li>";
var t = $("body ul").append(addmenu);
})
$("body ul li").addClass("menu");
data.each(function(i){
var submenu="<ul>";
data.eq(i).find("submenu").each(function(){
var tab = "<li><a href='#'>"+$(this).text()+"</a></li>";
submenu = submenu+tab;
})
submenu =submenu+"</ul>";
$(".menu").eq(i).append(submenu);
})
}) $("body ul li a").on("click",function(){
alert("aaa");
var node = $(this).next();
if(node.css("display")=="none"){
node.show();
}else{
node.hide();
}
})
})
解决方案 »
- 帮忙解决一下这个问题
- 如何得到上一个节点的className值?
- jsvascript 提交文件
- javascript中如何获得name属性差不多的所有文本框的值?谢谢大家!!
- 超难问题,如何判断td中输入的文字达到td的底边?
- 请教如何利用Javascript实现类似.chm的查询框
- 在百度找不到实现这样效果的资料:网页缩小,浏览器下边的滚动条滑动不会超出网页中间主体内容,
- iframe老问题:怎么刷新多重嵌套的iframe?
- 如何使用HTML或JS实现本地保存功能?
- 急需一日历脚本
- jquery获得已经赋上value 的 input 型text 改变text后的值的获取
- 求eclipse的js Formatter模板
不知道是不是这个原因
$.get("../file/test.xml", function(data) {
var data = $(data.documentElement).find("root").find("menu");
data.each(function() {
var addmenu = "<li><a href='#'>"+$(this).attr("id")+"</a></li>";
var t = $("body ul").append(addmenu);
})$("body ul li").addClass("menu"); data.each(function(i){
var submenu="<ul>";
data.eq(i).find("submenu").each(function(){
var tab = "<li><a href='#'>"+$(this).text()+"</a></li>";
submenu = submenu+tab;
})
submenu =submenu+"</ul>";
$(".menu").eq(i).append(submenu);
})
})$("body ul li a").on("click",function(){
alert("aaa");
var node = $(this).next();
if(node.css("display")=="none"){
node.show();
}else{
node.hide();
}
})
})试试
$("body ul li a").on("click",function(){将on换成bind吧
$(function() {
$.get("test.xml", function(data) {
var data = $(data).find("root").find("menu");
data.each(function() {
var addmenu = "<li><a href='#'>"+$(this).attr("id")+"</a></li>";
var t = $("body ul").append(addmenu);
});
$("body ul li").addClass("menu");
data.each(function(i){
var submenu="<ul>";
data.eq(i).find("submenu").each(function(){var tab = "<li><a href='#'>"+$(this).text()+"</a></li>";submenu = submenu+tab;})
submenu =submenu+"</ul>";
$(".menu").eq(i).append(submenu);
});
$("body ul li a").on("click",function(){
alert("aaa");
var node = $(this).next();
if(node.css("display")=="none"){
node.show();
}
else{
node.hide();
}
})
})
})
其实是楼主的绑定事件代码放置的位置问题。
$.get("../file/test.xml", function(data) {
// 绑定事件的代码要放在这里 才其作用的。});
//而楼主放到这个位置,所以当配置事件方法的时候,a元素还没有添加到DOM中,所以根本就找不到 a
$("body ul li").addClass("menu");开始的代码,所以你是在这之后为a标签绑定事件,但这时候a标签还没有生成,所以绑定不上,你也可以用delegate将事件绑定到ul元素上,这样即使你绑定的时候a标签没有加载出来,也不会出现问题,建议看看jQuery绑定事件的几种机制以及他们之间的区别。