2012-02-27 5 views
0

Я загрузил содержимое ajax в div, используя следующий код.Содержимое ajax, загруженное dojo, не получилось разобранным

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

     });} 

Нижеприведенный скрипт не работает, когда #show_button нажимается на загруженное содержимое ajax. Но он работает, если #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/

Смежные вопросы