2013-02-25 3 views
12

Я использую плагин jstree для заполнения моего дерева на основе xml-файла. Текст некоторых узлов больше, чем контейнер div. Есть ли способ текстового переноса jstree-узлов?wrapping leaf text in jstree

$(document).ready(function(){ 
    $("#tree").jstree({ 
     "xml_data" : { 

      "ajax" : { 

       "url" : "jstree.xml" 

      }, 

      "xsl" : "nest" 


     }, 
     "themes" : { 

      "theme" : "classic", 

      "dots" : true, 

      "icons" : true 

     }, 

     "search" : { 

       "case_insensitive" : true, 

       "ajax" : { 

        "url" : "jstree.xml" 

       } 

      }, 
       "plugins" : ["themes", "xml_data", "ui","types", "search"] 


    }).bind("select_node.jstree", function (event, data) { 

     $("#tree").jstree("toggle_node", data.rslt.obj); 

ответ

10

Попробуйте добавить следующие стили к дочерним якорей вашего jsTree DIV:

#jstree_div_id a { 
    white-space: normal !important; 
    height: auto; 
    padding: 1px 2px; 
} 

Я также имеют максимальную ширину на моем jsTree сНу стайлинга:

#jstree_div_id 
{ 
    max-width: 200px; 
} 
+1

Спасибо, что это отлично работает для меня –

+0

Большое спасибо! Это отлично работает для меня! – Tung

1
#tree_id { 
    .jstree-anchor { 
    white-space: normal; 
    height: auto; 
    } 
    .jstree-default .jstree-anchor { 
    height: auto; 
    } 
} 
9

Это работало для 3.0.8

.jstree-anchor { 
    /*enable wrapping*/ 
    white-space : normal !important; 
    /*ensure lower nodes move down*/ 
    height : auto !important; 
    /*offset icon width*/ 
    padding-right : 24px; 
} 

И для тех, кто использует плагин wholerow;

//make sure the highlight is the same height as the node text 
$('#tree').bind('hover_node.jstree', function() { 
    var bar = $(this).find('.jstree-wholerow-hovered'); 
    bar.css('height', 
     bar.parent().children('a.jstree-anchor').height() + 'px'); 
}); 
+0

Консоль плагина 'wholerow' была тем, что я искал. – SNag

+0

Отличный ответ! Это работало для меня, но для деревьев, которые предварительно выбрали данные, это не так. Я использовал следующие:
'$ (# дерево '). Связывать 'open_node.jstree', ->' '
бар = $ (это) .find ('. Jstree-wholerow щелкнул ')' '
bar.css 'height', bar.parent(). children ('a.jstree-anchor'). height() + 'px'' – TwiceB

0

Я нашел ответ на coincedence и он работал для меня, но, я имел еще одно правило CSS, которая препятствовала код хорошо функционировать

Я удалил правило CSS (мин-высота: 200px) «в моем коде», и следующий ответ работал на меня, как я ожидал.

#tree_div_id a { 
white-space: normal; 
height: auto; 
padding: 0.5ex 1ex; 
margint-top:1ex; 
}