Неспособность поймать dijit.Tree "onclick"

Я прочитал несколько примеров обработки onClick для dijit.Tree.. в частности, этот, кажется, говорит мне все, что мне нужно: dojo, как переопределить метод класса dijit

Однако по какой-то причине мой обработчик вызывается при первой загрузке моей страницы, а не когда я нажимаю на узел дерева?

Вот код:

<div dojoType="dijit.layout.ContentPane" title="Published Blueprints" minSize="20" style="width: 300px;" id="leftAccordion" region="leading" splitter="true">
   <div id="blueprintTree" dojoType="dijit.Tree" store="" query="" label="Blueprints" openOnClick="false">
   </div>
</div>

... а потом я делаю это...

dojo.ready(function() {
   var tree = dijit.byId("blueprintTree");
   tree.connect(tree, "onClick", function(item) {
       // my code here...
   });
});

... часть "мой код здесь" вызывается, когда я запускаю (в отладке) мой jsp, но никогда, когда я блокируюсь на узлах...

Очевидно, я упускаю что-то простое?

С уважением, Брайан

1 ответ

Нужно ли помещать соединение внутри dojo.ready()? Может быть, поэтому он вызывается при запуске?

Глядя на источник dijit.Tree, я увидел, что у onClick было два аргумента. Это то, что я использовал в моем случае для успешного захвата onClicks:

В конструкторе дерева добавьте openOnClick: false:

var tree = new dijit.Tree( {
        model: myModel,
        openOnClick: false,
                    etc...

Затем в той же функции, где я создаю дерево, используя программный подход

dojo.connect( tree,"onClick", function(/*dojo.data*/ item, /*TreeNode*/ nodeWidget){
    //my code
});
Другие вопросы по тегам