在DOM被另一个脚本完全更新后触发javascript

在DOM被另一个脚本完全更新后触发javascript,javascript,html,dom,get,Javascript,Html,Dom,Get,我有一个脚本,在一个序列中完成两个主要任务: 它通过GET请求从XML文件中提取数据,并将结果附加到DOM中 我有一个“MacyJS”脚本,它基本上把内容放在一个计算良好的网格中(有点像砖石结构) 我的问题是,第一部分需要花费相当长的时间(我不介意,它是为了我自己的私用)才能得到结果并将其附加到DOM中。因此“MacyJS”以前已经运行过,因此无法在一个漂亮的网格中正确呈现HTML 您可以看到,我试图为MacyJS设置一个延迟,但当然这并不精确,而且并不总是及时工作,因为GET/append有时

我有一个脚本,在一个序列中完成两个主要任务:

  • 它通过GET请求从XML文件中提取数据,并将结果附加到DOM中
  • 我有一个“MacyJS”脚本,它基本上把内容放在一个计算良好的网格中(有点像砖石结构)
  • 我的问题是,第一部分需要花费相当长的时间(我不介意,它是为了我自己的私用)才能得到结果并将其附加到DOM中。因此“MacyJS”以前已经运行过,因此无法在一个漂亮的网格中正确呈现HTML

    您可以看到,我试图为MacyJS设置一个延迟,但当然这并不精确,而且并不总是及时工作,因为GET/append有时需要超过1.5s的时间

    只有在DOM使用新的HTML/内容完全更新后,我如何才能自动运行“MacyJS”

    非常感谢你的帮助

    以下代码供参考:

    $(文档).ready(函数(){
    //第一稿
    var x=20;
    $.get(“此处为我的xml文件”,函数(数据){
    var$xml=$(数据);
    $xml.find(“item”)。每个(函数(i,val){
    变量$this=$(this),
    项目={
    description:$this.find(“description”).text(),
    guid:$this.find(“guid”).text()
    };
    $('#网格')。追加($('');
    
    返回我在
    $中调用它。完成所有附加操作后立即获得
    回调回答您的问题吗?Charlietfl的解决方案有效!非常感谢您的简单修复,我没有想到这一点。@Michel我尝试过,但没有满意的结果。谢谢
    
    $(document).ready(function(){
    
           // THE FIRST SCRIPT
            var x=20; 
            
            $.get("my xml file here", function(data) {
                var $xml = $(data);
                $xml.find("item").each(function(i, val) { 
                    
                    var $this = $(this),
                        item = {
                            description: $this.find("description").text(),
                            guid: $this.find("guid").text()
                    };
                    
                    $('#grid').append($('<div class="parsed appear"><a target="_blank" href="' +item.guid +'">' +item.description +'</a></div>'));
                    
                    return i<(x-1); 
                });
            });
    
           // THE SECOND SCRIPT
            setTimeout(function(){
              
              var macy = Macy({
                  container: '#grid',
                  margin: 20,
                  columns: 4,
              });
    
            }, 1500);
          });