<?php use efureev\widget\TreeView; use yii\web\JsExpression; $items = [['text' => 'Parent 1', 'nodes' => [['text' => 'Child 1', 'nodes' => [['text' => 'Grandchild 1'], ['text' => 'Grandchild 2']]], ['text' => 'Child 2']]], ['text' => 'Parent 2']]; $onSelect = new JsExpression(<<<JS function (undefined, item) { console.log(item); } JS ); $groupsContent = TreeView::widget(['data' => $data, 'size' => TreeView::SIZE_SMALL, 'clientOptions' => ['onNodeSelected' => $onSelect, 'selectedBackColor' => 'rgb(40, 153, 57)', 'borderColor' => '#fff']]);
<?php use yii\widgets\Pjax; use yii\web\JsExpression; use efureev\widget\TreeView; Pjax::begin(['id' => 'pjax-container']); echo \yii::$app->request->get('page'); Pjax::end(); $onSelect = new JsExpression(<<<JS function (undefined, item) { if (item.href !== location.pathname) { \$.pjax({ container: '#pjax-container', url: item.href, timeout: null }); } var otherTreeWidgetEl = \$('.treeview.small').not(\$(this)), otherTreeWidget = otherTreeWidgetEl.data('treeview'), selectedEl = otherTreeWidgetEl.find('.node-selected'); if (selectedEl.length) { otherTreeWidget.unselectNode(Number(selectedEl.attr('data-nodeid'))); } } JS ); $items = [['text' => 'Parent 1', 'href' => Url::to(['', 'page' => 'parent1']), 'nodes' => [['text' => 'Child 1', 'href' => Url::to(['', 'page' => 'child1']), 'nodes' => [['text' => 'Grandchild 1', 'href' => Url::to(['', 'page' => 'grandchild1'])], ['text' => 'Grandchild 2', 'href' => Url::to(['', 'page' => 'grandchild2'])]]]]]]; echo TreeView::widget(['data' => $items, 'size' => TreeView::SIZE_SMALL, 'clientOptions' => ['onNodeSelected' => $onSelect]]);