me gusta el plugin jstree pero no es bien documentados, ni es construido para conformar decir, las normas de jQuery UI de desarrollo del complemento. He usado 1.0rc2 para lograr lo que estás tratando de hacer.
Debes vincular el evento "cargado" antes de crear una instancia del jstree así que supongo que es lo mismo con el evento "change_state". El otro aspecto a tener en cuenta es que "change_state" es más que solo un cambio debido a una casilla de verificación. Por ejemplo, también se activará cuando expanda un nodo (pero no colapsará, por algún motivo). Dicho esto, realizo algunas comprobaciones en el manejador "change_state" para tratar de filtrar los eventos no deseados del cambio en la casilla de verificación. El código mínimo para aprovechar el manejador es
$("#treeElement").bind("change_state.jstree", function (e, d) {
var tagName = d.args[0].tagName;
var refreshing = d.inst.data.core.refreshing;
if ((tagName == "A" || tagName == "INS") &&
(refreshing != true && refreshing != "undefined")) {
//if a checkbox or it's text was clicked,
//and this is not due to a refresh or initial load, run this code . . .
}
});
Su elemento es hecho clic a continuación d.rslt
y se puede obtener elementos comprobados con d.inst.get_checked()
por sólo el elemento se hace clic, o d.inst.get_checked(d.rslt)
para un objeto que contiene los subnodos que estén seleccionadas. Use la función .each de jquery para procesar los nodos.
¿qué plugin de jstree estás usando? – Vivek
@Vivek probablemente jquery.jstree. @ user529011 ¿Puedes dar un ejemplo del código que usas? Tal vez aísle su problema en http://www.jsfiddle.net – Raynos
jquery jstree v.1.0-versión – user529011