页面动态菜单栏加载出现问题

正常菜单栏

向后台获取菜单栏能拿到数据且数据正常,生成打印在控制台的html代码也是对的

 

页面显示出错,子菜单什么的都点不开

将控制台打印的html代码之间复制到页面里去却能正常显示,这是怎么回事呀,有没有大佬救救孩子啊,要被这个东西整崩溃了。

出现什么问题,把问题描述详细一点,把代码贴出来

应该是动态添加的元素没有绑定click之类的事件。
对于动态添加的元素要用委托式的绑定事件方式:
$("#nav").on("click", "绑定事件的元素", function(event){});
不能用直接的绑定事件方式:
$("绑定事件的元素").click(function(event){});
因为直接绑定事件时,你的元素还没有添加到页面上,找不到元素。

 

把数据和生成菜单的代码贴出来:

可能的原因:

1.数据正确,但递归循环生成菜单代码有错误

2.数据不正确

$(function (){
    $("#currentUser").html("");
    console.log(sessionStorage.getItem("currentUserRole"));
    LoadMenu()
})


function LoadMenu() {
    let role=sessionStorage.getItem("currentUserRole");
    let data={
        role:role
    }
    $.ajax({
        url: "http://localhost:11000/menu/queryMenusByRole",
        type: "post",
        data:data,
        contentType: "application/json; charset=utf-8",
        async:false,
        data:JSON.stringify(data),
        dataType: 'json',
        success:function (data){
            console.log(data)
            let menus=setMenu(data)
            $("#nav").html(menus)
        }
    })
}
          <ul id="nav"></ul>

这是代码

显示错误的页面,子菜单  f12检查元素有吗?

 

f12也能看到元素,但是就是不显示

你的下箭头在这里吧,看下样式怎么没显示

估计是js加载顺序的问题。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y