Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.04.2016, 17:15
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

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 ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
clearInterval срабатывает только со второго раза nikolayseo Firefox/Mozilla 3 08.12.2014 19:25
jquery событие change не срабатывает с первого раза. daneyeah Общие вопросы Javascript 2 13.10.2014 14:06
onclick срабатывает со 2 раза в ie djonA Общие вопросы Javascript 19 25.03.2013 01:07
Скрипт не срабатывает с первого раза Mateus jQuery 3 14.12.2012 12:35
Onchange в attachevent срабатывает не с первого раза. platedz Internet Explorer 17 19.08.2012 08:34