用dojo编辑器单击处理程序

anv*_*nvd 5 javascript dojo click

我有这个代码:

<!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>
Run Code Online (Sandbox Code Playgroud)

但是,当我单击粗体按钮或斜体时,即使右键单击顶部栏中的格式化选项,也会重新加载ajax请求.因此,当我按下格式工具栏时,将加载dojo编辑器

任何的想法 ?在这里演示

Eri*_*ron 3

Dojo 加载后,您需要执行 Dojo 代码。请参阅http://jsbin.com/ukesup/7

按照您执行的方式,“myButton”为 null,因为 dojo 尚未加载,并且 dojo.byId 返回无效值或根本不存在。

还要记住在加载 dojo 后加载所需的小部件。在示例中我使用了 Dojo <1.7 方式:

dojo.addOnLoad(function() {  
    dojo.require("dijit.Editor");
    ...
    more code here
    ...
});
Run Code Online (Sandbox Code Playgroud)