2012-01-02 14 views
5

tôi có mã này:nhấp chuột handler với biên tập võ đường

<!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> 

Tuy nhiên, khi tôi nhấp vào nút đậm, hoặc nghiêng, ngay cả với click chuột phải vào thanh trên cùng với các tùy chọn định dạng, theo yêu cầu ajax được nạp lại. Vì vậy, trình chỉnh sửa dojo được tải khi tôi nhấn thanh công cụ định dạng

Bất kỳ ý tưởng nào? demohere

Trả lời

3

Bạn cần thực thi mã Dojo khi Dojo được tải. Xem http://jsbin.com/ukesup/7.

Trong cách bạn đang thực hiện 'myButton', không có dojo dojo chưa được tải và dojo.byId trả về giá trị không hợp lệ hoặc đơn giản là không tồn tại.

Cũng nhớ tải các tiện ích bắt buộc khi tải dojo. Trong mẫu tôi đã sử dụng cách Dojo < 1.7:

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

god. tôi quên dojo.addOnLoad (- cảm ơn người đàn ông – anvd