菜鸟求解答,用jquery动态添加的html菜单没有直接在页面里加的点击效果???

图片说明
图片说明图片说明
在html里加console打出来的代码菜单是可以有伸缩效果的,但是用js动态添加不行

添加html代码到dom后绑定点击的事件代码要重新执行一次,要不找不到对象

var basePathPix="<%=basePath%>"; var menuJSON =[ { "id":"1", "pid":"0", "name":"统计管理", "href":"#", "child":[{ "id":"2", "pid":"1", "name":"统计图表", "href":"adminindex", "child":[]}, { "id":"2", "pid":"1", "name":"统计", "href":"adminindex", "child":[]}]}, { "id":"3", "pid":"0", "name":"专业管理", "href":"#", "child":[]} ]; $(function(){ $("#main-nav ul li a").click(function() { $("#main-nav ul li a").removeClass("current"); $(this).addClass("current"); }) $(".nav-top-item").click(function() { $(".nav-top-item").removeClass("current"); $(this).addClass("current"); }) // initMenu(); getMenu(menuJSON); function getMenu(menu_list){ var $menu = $("#main-nav"); var menuhtml =""; for (var menu in menu_list) { if(menu_list[menu].child.length > 0){ menuhtml+= "<li><a href=\""+menu_list[menu].href+"\" class=\"nav-top-item\">"+menu_list[menu].name+"</a><ul>"; for(var menuc in menu_list[menu].child){ menuhtml+="<li><a href=\""+menu_list[menu].child[menuc].href+ "\" target=\"main\">"+menu_list[menu].child[menuc].name+"</a></li>"; } } else{ menuhtml+= "<li><a href=\""+menu_list[menu].href+"\" class=\"nav-top-item \">"+menu_list[menu].name+"</a><ul>"; } menuhtml+="</ul></li>" } // alert(menuhtml); console.log(menuhtml); $menu.append(menuhtml); } });

动态生成的元素不能直接绑定方法,要用委托实现绑定

$("new dom").bind("click",function()
{
//your function
});