用dojo编辑器单击处理程序

时间:2012-01-02 19:34:04

标签: 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>

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

时,将加载dojo编辑器

有什么想法吗? 演示 here

1 个答案:

答案 0 :(得分:3)

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

在你做'myButton'的方式是null时,beacuse dojo尚未加载,dojo.byId返回无效值或根本不存在。

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

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