Реакция на событие щелчка мышью
Иметь возможность отображения данных в виде дерева хорошо уже само по себе, но разве не было бы еще лучше иметь возможность обрабатывать такие события, как щелчок мышью? Давайте реализуем точку расширения onClick, чтобы продемонстрировать возможность обрабатывать щелчки мышью на различных элементах. В функцию onClick для обработки передаются как сам узел _TreeNode, на котором произошел щелчок, так и элемент данных dojo.data. В примере 15.10 показаны изменения, которые необходимо внести, чтобы реализовать обработку щелчка.
Пример 15.10. Обработка щелчков мышью в диджите Tree
(body class="tundra")
<div dojoType="dojo.data.ItemFileReadStore" jsId="dataStore"
url="./programmingLanguages.json"></div>
<div dojoType="dijit.tree.ForestStoreModel" jsId="model" store="dataStore"
query="{type:'category'}" rootId="root"
rootLabel="Programming Languages"></div>
<div dojoType="dijit.Tree" model="model" >
<script type="dojo/method" event="onClick" args="item,treeNode">
//использовать элемент данных или узел по желанию...
console.log("onClick:",dataStore.getLabel(item)); //вывести метку
</script>
</div>
(/body)
Обратите внимание: несмотря на наличие между Tree и dojo.data промежуточной модели, обеспечивающей дополнительный уровень абстракции данных, мы попрежнему имеем возможность прямого доступа к элементам данных. Здесь нет никакой необходимости использовать промежуточную модель, которая упрощает возможность отображения данных, но является совершенно ненужной прослойкой между элементом dojo.data и обычными средствами доступа к нему.
Комментарии:
Нету комментариев для вывода...