Неспособность поймать 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
});