[jQuery] Avoir des liens valides avec jsTree

Publié le 26 juillet 2011 par Jeremy.jeanson

Ceux qui me connaissent bien savent que quand je customise du JavaScript, cela n’est jamais vraiment de gaité de coeur. C’es comme ça, j’aime les serveurs, mais que serraient les serveurs sans clients.

Trêve de rigolade. Voulant utiliser jsTree pour un projet MVC3 je suis tombé sur un os. Le TreeView avait le bon rendu, mais les liens qui s’y trouvaient ne permettaient pas d’ouvrir les pages qu’ils ciblaient (vraiment pas drôle).

En cherchent bien, j’ai découvert que jsTree interceptait les clicks sur mes liens et qu’il me fallait refaire un bind sur une méthode qui se chargerait d’ouvrir mes liens. Ce qui a donné le code suivant.

$(function () {
    $("#archives").jstree().bind(
        "select_node.jstree",
        function (e, data) {
            document.location.href = data.rslt.obj.children("a").attr("href");
        })
})

“archives” étant l’Id de ma <div> devant être transformée en TreeView. Pour ceux qui ne connecteraient pas jsTreee, il s’agit d’une <div> qui doit contenir des imbrications de <ul> <li> représentant les Nodes du TreeView.

Ce qui fonctionne plutôt bien. N’étant pas un expert S JavaScript, je prendrai volontiers toute remarque