Html生成的JavaScript无法与其他JavaScript一起使用

时间:2014-09-24 16:21:58

标签: javascript html

您好我有一个由JavaScript生成的HTML。我还有另一个单独的JavaScript,它假设隐藏并对该html执行其他操作。问题是html没有响应任何其他javascript的函数或方法。

我尝试在Javascipt中包含Javascript,但似乎无法正常工作

HTML

<head>
     <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.1.min.js"></script>
    <script src = "js/java1.js"type="text/javascript"></script>
    <script src = "js/java2.js"type="text/javascript"></script>
</head>

<body id = "example">

</body>

Javascript1

function creatething(){
    var html ='';

    html += '<div id = "button">Button <div id = "hide"> EXAMPLE </div> </div>'

    return html;

}

function insertHTML(id, html) {
    var el = document.getElementById(id);

    if(!el) {
        alert('Element with id ' + id + ' not found.');
    }

    el.innerHTML = html;
}

function run() {
    var html = creatething();

    insertHTML('example', html);
}

window.onload = run;

Javascript2

$(document).ready(function() {  

    $('#hide').hide();
});

2 个答案:

答案 0 :(得分:3)

你遇到的问题是事件的顺序。

window.onload = run;  <-- Creates button
$(document).ready(function() {  <-- hides button

文档准备好在onload之前触发。您添加元素onload并将其隐藏。

这就像吃披萨之前一样。

答案 1 :(得分:0)

如果您可以选择将JavaScript添加到文件中,或者在选项卡加载之前将其注入(例如浏览器加载项),那么您可以使用

  document.onreadystatechange = function () {
    if(document.readyState === 'interactive') {
      alert('interactive');
    }
    if(document.readyState === 'complete') {
      alert('complete');
    }
  }

来自MDN,“返回”加载“在文档加载时”,交互式“一旦完成解析但仍然加载子资源,并且”完成“一旦加载。”