由dojo加载的ajax内容未被解析

时间:2012-02-27 23:00:04

标签: javascript ajax dojo

我使用以下代码将ajax内容加载到div中。

function refreshMain(paneUrl){
require(["dojo/_base/xhr", "dojo/on", "dojo/dom", "dojo/parser", "dojo/domReady!"],
        function(xhr, on, dom) {
                xhr.get({
                    url: paneUrl,
                    load: function(newContent) {
                        dom.byId("bottom_div").innerHTML = newContent;
                        dojo.parser.parse();
                    }
                });

        });}

在ajax加载的内容上单击#show_button时,以下脚本无效。 但是如果#show_button在同一页面上,它就可以工作。

require(["dojo/query", "dojo/NodeList-fx", "dojo/NodeList-traverse"], function(query){
query("#show_button").on("click", function(e){
    alert(e.target);
}); });

2 个答案:

答案 0 :(得分:2)

对于Dojo 1.8+,可以使用EventDeligation或Publish / Subscribe技术来处理通过ajax加载的内容或将来加载的内容生成的事件。

Event Deligate示例

<div id="parent">
    <button id="button1" class="btnclass">Click me</button>
</div>

require(["dojo/on", "dojo/dom", "dojo/query", "dojo/domReady!"],
    function(on, dom){
       var btnlick = function(evt){
            alert("Hey Hoo");
        };
        var divp = dom.byId("parent");
        on(divp, ".btnclass:click", btnlick);
});

请参阅以下链接以获取更多信息。

http://dojotoolkit.org/documentation/tutorials/1.8/events/

答案 1 :(得分:0)

当我在xhr.get()的加载回调函数中添加脚本时,它有效。