обработчик кликов с редактором Dojo - PullRequest
5 голосов
/ 02 января 2012

у меня есть этот код:

<!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 загружается, когда я нажимаю на панель инструментов форматирования

Есть идеи? демо здесь

1 Ответ

3 голосов
/ 03 января 2012

Вам нужно выполнить код Dojo после загрузки Dojo.См. http://jsbin.com/ukesup/7.

. То, как вы делаете 'myButton', равно нулю, потому что dojo еще не загружен и dojo.byId возвращает недопустимое значение или просто не существует.не забудьте загрузить необходимые виджеты после загрузки dojo.В примере я использовал Dojo <1.7 way: </p>

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