0

Dojo Toolkit 的新手,我能够在页面加载时成功加载 xhrGet,但我需要在选择 DataGrid 的一行时加载 xhrGet。有没有办法做到这一点?

<!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>

xhrGet 本身在页面加载时工作正常,尝试通过按钮调用它时没有骰子。

4

1 回答 1

1

这会将 html domNode 的点击连接到触发一个可以放置 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);
});
于 2012-05-10T17:44:13.263 回答