Обнаружить изменение флажка в jstree

Я использую последнюю фиксацию jstree из github с плагином флажка как часть моей формы. Я использую дерево с атрибутом «real_checkboxes».

Все в порядке, за исключением того, что плагин флажка на самом деле не добавляет какой-либо измененный атрибут свойства в скрытое поле и, похоже, не имеет внешней функции, которая позволит мне подключиться для создания пользовательских функций.

Могу ли я понять и услышать, когда флажок установлен или снят?

Спасибо,

ОБНОВЛЕНИЕ: после некоторых экспериментов я смог обойти стандартные функции проверки и отмены проверки, используя:

$.jstree._instance.prototype.check_node = function(node){ alert("here"); }

Однако это не очень чисто и переопределяет весь метод.

Здесь:

а) более чистый способ сделать это? б) способ просто сделать обратный вызов функции, а не заменить всю эту чертову штуку?

Спасибо еще раз,


person Sammaye    schedule 15.07.2011    source источник
comment
Я могу использовать check_node и uncheck_node, но я не уверен, как расширить эти функции, чтобы использовать мое собственное поведение, сохраняя при этом целостность фактического родителя. Возможно, кто-то может просто сказать мне, как расширить эти функции?   -  person Sammaye    schedule 15.07.2011


Ответы (2)


@Ноктирн

Да, я сделал это изначально, но потом я просмотрел документы более внимательно и нашел это:

$(".js_tree_'.$this->attribute.' div").bind("check_node.jstree", function(){});

Но да, ваша функция делает то же самое :). Но поскольку мой ответ подходит к документам jsTree, я отмечаю мой ответ как правильный. Кроме того, эта функция позволяет различным деревьям на одной странице иметь разные привязки, поэтому в целом это лучше :).

Спасибо за помощь :),

person Sammaye    schedule 18.07.2011

Это на самом деле менее чисто, но, по крайней мере, оно выполняет свою работу:

var check_node_func = $.jstree._instance.prototype.check_node;
$.jstree._instance.prototype.check_node = function(node) {
    check_node_func.apply(this, arguments);
    alert("here");
}
person Noctyrn    schedule 15.07.2011