2012-01-02 100 views
5

點擊處理我有這樣的代碼:與道場編輯

<!DOCTYPE HTML> 
<html> 
<head> 
<script 
    src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js" 
    type="text/javascript" djConfig="parseOnLoad: true"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 

<script type="text/javascript"> 
var myButton = dojo.byId("btn"); 
dojo.connect(myButton, "onclick", function (evt) { 
    require(["dojo/_base/xhr", "dojo/parser", "dojo/dom"], function (xhr, parser, dom) { 
     xhr.get({ 
      url: "teste_apagar.php", 
      load: function (data) { 
       alert("as"); 
       var um = []; 
       dijit.registry.filter(function(w){ 
        if(dojo.indexOf(um)){ 
         w.destroyRecursive(); 
        } 
       }); 
       dom.byId("result").innerHTML = data; 
       parser.parse("result"); 
      } 
     }); 
    }); 
}); 
</script> 

</head> 

<body class="claro"> 
<script type="text/javascript"> 
    dojo.require("dijit.Editor"); 
</script> 

<div id="btn" style="width: 100px; height: 30px; margin-bottom: 150px; background-color: red;">load</div> 
    <div id="result"> 
    </div> 
</body> 
</html> 

然而,當我點擊粗體按鈕或斜體,即使在與格式選項頂欄點擊右鍵,Ajax請求重新加載。所以當我按下格式化工具欄時,加載了編輯器編輯器

任何想法? 演示here

回答

3

您需要在加載Dojo後執行Dojo代碼。見http://jsbin.com/ukesup/7

以您所做的方式'myButton'爲空beacuse dojo尚未加載,dojo.byId返回無效值或根本不存在。

還記得加載所需的小部件一旦dojo加載。在我使用的示例中,我使用了Dojo < 1.7的方式:

dojo.addOnLoad(function() { 
    dojo.require("dijit.Editor"); 
    ... 
    more code here 
    ... 
}); 
+0

上帝。我忘了dojo.addOnLoad( - 謝謝你 – anvd 2012-01-02 22:32:18