JavaScript - 等到AJAX回调中的DOM修改完成

时间:2016-09-05 02:23:45

标签: javascript jquery dom web

所以,我有以下代码:

$(document).ready(function(){
    //Retrieve menu html
    $.get('/modules/menu.php', function(data) {
        //Load menu html
        $('main#main').prepend(data);
    });

    //Initialize Menu
    menuInit();

    $('#menuToggle').click(function() {
        $('#main_menu').fadeToggle();
    });
});

menuInit()直接包含在html中而不是使用$.get()时成功修改DOM元素,因此初始化没有问题,但是,当使用ajax时,菜单的初始化在DOM元素之前开始满载。

我做了一些研究,.prepend()不支持回调,所以不是一个选项。

menuInit()周围setTimeOut()有100毫秒有效,但它肯定会因连接速度慢而失败,我需要更动态的东西。

1 个答案:

答案 0 :(得分:0)

将其余代码放在回调中,以便在将数据添加到页面后执行:

p{
      position: absolute;
      top: 40%;
      display: inline-block;
      left: 5%;
    }