Мне нравится jstree плагин, но это не очень хорошо документированы, и он не построен, чтобы соответствовать сказать, стандарты JQuery пользовательского интерфейса разработки плагинов. Я использовал 1.0rc2 для выполнения того, что вы пытаетесь сделать.
Вы должны связать «загруженное» событие, прежде чем создавать экземпляр jstree, поэтому я предполагаю, что он совпадает с событием «change_state». Другая вещь, на которую следует обратить внимание, заключается в том, что «change_state» - это больше, чем просто изменение из-за флажка. Например, он также срабатывает, когда вы разворачиваете узел (но не сворачиваете, по какой-то причине). Тем не менее, я делаю некоторые kludgey проверки в обработчике «change_state», чтобы попытаться отфильтровать нежелательные события из изменения флажка. Минимальный код для нарезания обработчика
$("#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 . . .
}
});
Вашего щелкнули элемент затем d.rslt
и вы можете получить выбранные элементы с d.inst.get_checked()
для всего элемента щелкнули или d.inst.get_checked(d.rslt)
для объекта, содержащего вложенные узлы, которые проверяются. Используйте функцию .each jquery для обработки узлов.
который вы используете? – Vivek
@Vivek, вероятно, jquery.jstree. @ user529011 Можете ли вы привести пример кода, используемого вами. Может быть, изолировать вашу проблему на http://www.jsfiddle.net – Raynos
jquery jstree v.1.0-version – user529011