Addeventlistener与阿贾克斯效果不佳 [英] Addeventlistener with ajax not working well

查看:237
本文介绍了Addeventlistener与阿贾克斯效果不佳的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在一个'div'中显示一个txt文件的内容,所以我用一个按钮调用我的函数,但是即使我不按下按钮,函数也会触发,这里是我的HTML代码:

I want to show the content of a txt file inside a 'div', so I'm calling my function with a button, but the functions triggers even if I don't push the button, here's my HTML code:

<body>
<form>
     <input id="showF" type="button" value= "Show File" />
</form>

 <div id="contaniner" style="background-color:#99FF66;">
 <p>It will show the txt content</p>
 </div>

</body>

以及我的js代码:

And my js code:

 window.onload=function(){
    document.getElementById("showF").addEventListener("click",sacardatos('P1.txt','container'),false);
 }

 function sacardatos(data, idDiv){
     var XMLHttpRequestObject = false;
 if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
 } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
 }

    if(XMLHttpRequestObject) {
        var objeto = document.getElementById(idDiv);
        XMLHttpRequestObject.open("GET", data);
        XMLHttpRequestObject.onreadystatechange = function(){
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
                objeto.innerHTML = XMLHttpRequestObject.responseText;
        }
    }
    XMLHttpRequestObject.send(null);
 }
}


推荐答案

第二个参数 addEventListener 应该是一个函数。你没有传递函数,你立即调用函数并传递结果。更改为:

The second argument to addEventListener should be a function. You're not passing a function, you're calling the function immediately and passing the result. Change to:

document.getElementById("showF").addEventListener("click", function() {
    sacardatos('P1.txt','container');
}, false);

这篇关于Addeventlistener与阿贾克斯效果不佳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆