2012-09-12 17 views
5

Estoy usando jstree en mi aplicación de rieles, y estoy usando datos json para ello, pero tengo problemas: cómo puedo configurar el enlace de nodos y href para ello, de modo que pueda ir en eso? de JSON tener este aspecto:JStree establece el enlace href y redirige

var data = [ 
{ 
    "data":"\u041b\u0435\u0433\u043a\u043e\u0432\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0438", 
    "href":10001, 
    "children":[ 
     { 
     "data":"\u041a\u0443\u0437\u043e\u0432", 
     "href":10101, 
     "children":[ 
      { 
       "data":"\u0422\u043e\u043f\u043b\u0438\u0432\u043d\u044b\u0439 \u0431\u0430\u043a/\u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0443\u044e\u0449\u0438\u0435", 
       "href":10316 
      }, 
      { 
       "data":"\u041a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0434\u0438\u0430\u0442\u043e\u0440\u0430", 
       "href":10317 
      }, 
      { 
       "data":"\u041e\u0431\u043b\u0438\u0446\u043e\u0432\u043a\u0430/\u0437\u0430\u0449\u0438\u0442\u0430/\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435/\u044d\u043c\u0431\u043b\u0435\u043c\u044b/\u0437\u0430\u0449\u0438\u0442\u0430 \u0440\u0430\u0441\u043f\u044b\u043b.", 
       "href":10319, 
       "children":[ 
        { 
        "data":"\u041e\u0431\u043b\u0438\u0446\u043e\u0432\u043a\u0430/\u0437\u0430\u0449\u0438\u0442\u043d\u0430\u044f \u043d\u0430\u043a\u043b\u0430\u0434\u043a\u0430", 
        "href":10840 
        }, 
        { ................................ 

y JS

$("#tree").jstree({ 
    plugins: ['themes', 'json_data'], 
    json_data: {data: data}, 
     themes: { 
      theme: 'apple' 
     }, 
    }); 
    $('#tree').bind('select_node.jstree', function(e,data) { 
    window.location.href = "123123" 
}); 

pero si veo código, enlace tiene href = "#". ¿Qué pasa?

Respuesta

3

un objeto JSTree Node no tiene atributo href .. si desea configurarlo tendrá que usar el atributo attr e incluir una matriz de pares clave, valor que identificará cualquiera de los atributos que JSTree colocará en su salida HTML .. Consideremos el siguiente ejemplo:

$(function() { 
$("#demo1").jstree({ 
    "json_data" : { 
     "data" : [ 
      { 
       "data" : "A node", 
       "metadata" : { id : 23 }, 
       "children" : [ "Child 1", "A Child 2" ] 
      }, 
      { 
       "attr" : { "id" : "li.node.id1" }, 
       "data" : { 
        "title" : "Long format demo", 
        "attr" : { "href" : "#" } 
       } 
      } 
     ] 
    }, 
    "plugins" : [ "themes", "json_data", "ui" ] 
}).bind("select_node.jstree", function (e, data) { alert(data.rslt.obj.data("id")); }); 
}); 

y siga el DOC:

JSTree JSON-DATA pulgin DOC

+1

Esto parece añadir el atributo href del elemento li y no el elemento de anclaje –

Cuestiones relacionadas