我使用以下代码将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);
}); });
答案 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);
});
请参阅以下链接以获取更多信息。
答案 1 :(得分:0)
当我在xhr.get()的加载回调函数中添加脚本时,它有效。