2012-02-27 7 views
0

次のコードを使用してdivにajaxコンテンツをロードしました。ajaxコンテンツがdojoによってロードされないget parsed

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+では、将来的にロードされるajaxまたはコンテンツによってロードされたコンテンツから生成されたイベントを処理するために、EventDeligationまたはPublish/Subscribeテクニックを使用できます。

イベント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/

関連する問題