Javascript 如何通过单击而不是页面加载来触发Dojo Xhret?

Javascript 如何通过单击而不是页面加载来触发Dojo Xhret?,javascript,dojo,xmlhttprequest,Javascript,Dojo,Xmlhttprequest,DojoToolkit新手,我能够在页面加载时成功地获得要加载的Xhret,但我需要在选择DataGrid的一行时加载Xhret。有没有办法做到这一点 <!doctype html> <html> <head> <script type="text/javascript> dojo.connect(btn, "onclick", function() { /************************/ /* xhr - AJAX functi

DojoToolkit新手,我能够在页面加载时成功地获得要加载的Xhret,但我需要在选择DataGrid的一行时加载Xhret。有没有办法做到这一点

<!doctype html>
<html>
<head>
<script type="text/javascript>
dojo.connect(btn, "onclick", function() {
/************************/
/* xhr - AJAX functions */
/************************/
dojo.ready(function(){

var targetNode = dojo.byId("xhr-container");

var xhrArgs = {
url: "info-to-get.html",
handleAs: "text",
load: function(data){
targetNode.innerHTML = data;
},
error: function(error){
targetNode.innerHTML = "You messed up, dummy!: " + error;
}
}
var deferred = dojo.xhrGet(xhrArgs);
});
});
</script>
</head>
<body>
<button type="button" id="btn">TEST</button>
<br>
<br>
<div id="xhr-container"></div>
</body>
</html>


这将连接HTMLDOMNode的点击以触发一个函数,您可以在其中放置xhr代码

dojo.connect(someDomNode, 'onclick', function() {
    //xhr code here
});
如果它是一个小部件,比如
dijit.form.Button
您可以编写

dojo.connect(someWidget, 'onClick', function() {
    //xhr code here
});
--编辑----------------------

根据您发布的代码,我希望以下方法能够奏效:

dojo.ready(function(){

    var targetNode = dojo.byId("xhr-container");

    var fnDoXHR = function() {
        var xhrArgs = {
            url: "info-to-get.html",
            handleAs: "text",
            load: function(data){
                targetNode.innerHTML = data;
            },
            error: function(error){
                targetNode.innerHTML = "You messed up, dummy!: " + error;
            }
        };
        var deferred = dojo.xhrGet(xhrArgs);
    };

    dojo.connect(dojo.byId('btn'), 'onclick', fnDoXHR);
});

我目前正试图通过编程方式使用一个简单的按钮来尝试触发xhr,但我甚至还不能让它工作。回答不错,但我想补充一点,为了可维护性,实际执行xhr的函数应该是它自己的函数,从connect引用,而不是用connect声明,谢谢你的回答,Craig,这实际上是我一直在尝试的,但到目前为止没有运气。我将编辑我的问题,以包括我目前的代码,因为到目前为止我还没有开始工作(搞定了,克雷格!非常感谢!!