Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jsTree не срабатывает uncheck с первого раза (https://javascript.ru/forum/jquery/62658-jstree-ne-srabatyvaet-uncheck-s-pervogo-raza.html)

SunYang 22.04.2016 17:15

jsTree не срабатывает uncheck с первого раза
 
Здравсвуйте.
Использую для прорисовки дерева jsTree с плагином jstree.checkbox.js
При первой загрузке данных пользователь ставить галочки над нужными нодами, это сохраняется на серваке.
При повторной загрузке, установленные ноды уже должны быть в состоянии "checked".

Но, если чекнуть уже проставленную ноду, то она с первого раза не снимает checked, и в добавок запускает с первого раза событие check_node.jstree вместо uncheck_node.jstree. А со второго раза снимает флажок.

Я получаю данные с сервера и на jquery строю html данные в виде списка:

group_build = function( group, ul) {
	var li = $('<li data-id="' + group.Id + '"><a href="">' + group.Name + '</a></li>');
	if (group.Checked) {
	// если есть дочерние, открываем группу
		if (group.Children && group.Children.length) {
			li.addClass('jstree-open');
		}
		li.children('a').addClass('jstree-checked');
	}
	ul.append(li);
	if (group.Children && group.Children.length) {
		var _ul = $('<ul />');
		li.append( _ul );
		for (var i in group.Children) {
			var sub_group =  group.Children[i];
			group_build(sub_group, _ul);
		}
	}
};


далее запускаю прорисовку jsTree:

var n_tree = $('.n_tree');
n_tree.jstree( normativeOptions.jstreeOptions )
		.on('search.jstree', function(){
			$('#groups_search').parent().removeClass('delay');
		})
		.on('check_node.jstree', function(evt, data){
			_this.group_checked(data);
		})
		.on('uncheck_node.jstree', function(evt, data){
			_this.group_checked(data);
		});


Опции:

var normativeOptions = {
	jstreeOptions : {
		plugins : [
			'search',
			'checkbox'
		],
		search : {
			show_only_matches : true
		},
		checkbox : {
			keep_selected_style : false,
			three_state	: false,
			tie_selection : false,
			cascade : ''
		}
	}
};


В чем может быть проблема? Почему галочка не снимается с первого раза, если нода уже установлена в checked ?


Часовой пояс GMT +3, время: 04:22.