如何在脚本中添加延迟加载?

时间:2017-10-25 14:24:59

标签: javascript jquery jstree

有一个脚本:

<script>
    $(function (){
        $('#jstree')
            .jstree({
                "plugins": [ "dnd", "sort", "json_data" ],
                'core':{
                    "check_callback" : true,
                    "plugins" : ["contextmenu", "dnd"],
                    'data': {
                        'url': function  (node) {
                            return node.id === '#' ? 'ajax?id=root' : 'ajax?id=' + node.id;
                        },
                        'data':  function (node) {
                            return { 'id': node.id };
                        }
                    }
                }
            });
    });

</script>

我需要在开放节点上添加延迟(2秒)。我读了jQuery文档,但我没有找到答案。请帮我添加延迟?

1 个答案:

答案 0 :(得分:0)

从另外两个SO answers.

组合引用的答案

本质上,在DOM加载时设置超时函数并在运行时创建<script>标记。然后将其附加到<body>并加载。

&#13;
&#13;
console.log("Seconds: " + new Date().getSeconds());
setTimeout(function() {

  var blob = new Blob(["console.log('Loaded after')"]); // Insert JS code into []
  var script = document.createElement('script');
  var url = URL.createObjectURL(blob);
  script.onload = script.onerror = function() {
    URL.revokeObjectURL(url);
  };
  script.src = url;
  document.body.appendChild(script);
  console.log("Seconds: " + new Date().getSeconds());
}, 2000);
&#13;
<html>

<head>
</head>

<body>
  <p>foo</p>
</body>

</html>
&#13;
&#13;
&#13;