2012-02-27 71 views
0

我使用以下代码将ajax内容加载到div中。由dojo加载的ajax内容没有得到解析

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); 
}); }); 

回答

0

它在我在xhr.get()的加载回调函数中添加脚本时起作用。

2

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

事件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/