0

非常に単純な Ajax テスト コード スニペットを作成しました。

<!DOCTYPE html>
<html>
    <head>
        <script src='main.js'></script>
    </head>
    <body>
        <button id='get-content'>Click</button>
        <p></p>
    </body>
</html>

main.js

(function(){
    window.addEventListener('load', function(){
        var xml_request = new XMLHttpRequest();
        xml_request.open('GET', '/test.txt', true);
        xml_request.addEventListener('readystatechange', change_content);
        var button_element = document.getElementById('get-content'); 
        button_element.addEventListener('click', fireup(xml_request));
        function fireup(xml_request) {
            xml_request.send();
        }
        function change_content(){
            if (xml_request.readyState == 4 && xml_request.status == 200) {
                document.getElementsByTagName('p')[0].textContent = xml_request.responseText;
            };  
        };
    });
})();

それは機能しますが、ボタンを押さずに ajax リクエストを送信して p タグを変更することを除いて、何か考えはありますか?

4

2 に答える 2

1

listener : を追加するときに呼び出すために発生しますfireup(xml_request)。次のようになります。button_element.addEventListener('click', fireup); function fireup () {...

匿名関数を使用することもできますbutton_element.addEventListener('click', function () {...})

于 2012-10-26T09:46:16.720 に答える