AJAX $(文档).ready(function()在页面加载时没有执行...有时候

时间:2017-12-04 16:13:41

标签: javascript jquery ajax

我不太清楚我应该怎么想我的问题所以我把它放在那里所以也许有人可以帮助我。

我在使用$(document).ready(function(){});的页面加载时执行了jQuery请求。比如说,这个请求已经工作了一个星期,现在它已经不能用了......我尝试了一切让它恢复正常工作。该请求为页面加载了一些内容。我在另一台计算机上有相同的文件,它完美地执行alert()子功能。跆拳道???我将所有这些AJAX函数放入JS文件中。该文件中有第二个AJAX请求,在按下按钮$("#AdmConUserCreate").click(function(){时执行。这个功能完全适用于我的第一台电脑,但不适用于第二台电脑。我不明白,为什么一个功能在一台计算机上运行而在另一台计算机上运行。这就是为什么我讨厌JS,因为我之前在代码执行方面遇到了不一致,但没有它我就无法实现我的项目。 是否有一定的序列我必须将代码放在文件中?我错过了什么?我真的没有选择......这太令人沮丧了。请参阅下面的JS文件代码:

var check = function(PW1,PW2,PWCheck) {
    if (document.getElementById(PW1).value == document.getElementById(PW2).value) {
        document.getElementById(PWCheck).src = 'pwdright.png';
        document.getElementById(PWCheck).width = "10px";
    } else {
        document.getElementById(PWCheck).src = 'pwdwrong.png';
        document.getElementById(PWCheck).width = "10px";
    }
}

function openNav(evt, section) {
    var i, tabcontent, tablinks;
    tabcontent = document.getElementsByClassName("tabcontent");
    for (i = 0; i < tabcontent.length; i++) {
        tabcontent[i].style.display = "none";
    }
    tablinks = document.getElementsByClassName("tablinks");
    for (i = 0; i < tablinks.length; i++) {
        tablinks[i].className = tablinks[i].className.replace(" active", "");
    }
    document.getElementById(section).style.display = "block";
    evt.currentTarget.className += " active";
}

function provideFeedback() {
    var x = document.getElementById("snackbar")
    x.className = "show";
    setTimeout(function(){
        x.className = x.className.replace("show","");
    }, 3000);   
}


$(document).ready(function(){
    $.ajax({
        url: "test.txt",
        success: function(result){
            document.getElementById("DbInfo").innerHTML = result;
        },
        error: function(result){
            document.getElementById("DbInfo").innerHTML = "Here should be the table";
            document.getElementById("snackbar").innerHTML = "doesn't work";
            provideFeedback();
        }
    });    
});

$("#AdmConUserCreate").click(function(){
    alert("Hello");
});
BTW前三个功能在任何地方都能完美运行。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

button事件处理程序包含在$(document).ready(function(){})中。如下所示

$(document).ready(function(){
  $("#AdmConUserCreate").click(function(){
      alert("Hello");
  });
})

在您当前的代码中,当您的javascript被执行时,您的DOM可能没有完全加载。 $(document).ready确保您的DOM已准备就绪,您可以开始编写包含DOM操作的代码。

链接:https://learn.jquery.com/using-jquery-core/document-ready/