Можем ли мы отключить кнопки "Следующий" и "Предыдущий", пока пользователь не выберет любой элемент дерева.
Другими словами, пользователь должен выбрать один из элементов из древовидного представления, а затем выбрать следующую и предыдущую кнопку, но до этого они отключены?
В моем примере я использую treeview.
здесь скрипка
$('#next').click(function () {
if($('.jstree-clicked').closest('li').next().length)
$('.jstree-clicked').removeClass('jstree-clicked').closest('li').next().find('a:eq(0)').addClass('jstree-clicked')
});
$('#pre').click(function () {
if($('.jstree-clicked').closest('li').prev().length)
$('.jstree-clicked').removeClass('jstree-clicked').closest('li').prev().find('a:eq(0)').addClass('jstree-clicked')
});
Вы можете использовать .prop(), чтобы отключить кнопки при загрузке страницы:
$('#next,#pre').prop('disabled',true);
и снова включите его, когда выбран ваш элемент:
$('#tree').on("select_node.jstree", function (e, data) {
$('#next,#pre').prop('disabled',false);
Попробуйте ниже код
Сначала установите disabled="true"
для обеих кнопок в html
<button id="next" disabled="true">next</button>
<button id="pre" disabled="true">pre</button>
затем в выбранном событии дерева удалить disabled
атрибут из кнопок
$('#tree').on("select_node.jstree", function (e, data) {
alert("node_children: " + data.node.children);
$('#tree').jstree(true).toggle_node(data.node);
$('#next, #pre').removeAttr("disabled");
});
вот JSFiddle
Вставьте следующее выражение внутри события готовности.
$('#next,#pre').attr('disabled',true);
или
$('#next,#pre').prop('disabled',true);
Привяжите следующее событие, чтобы после того, как пользователь выбрал какой-либо элемент, он будет включен
$('#tree').on("select_node.jstree", function (e, data) {
$('#next,#pre').prop('disabled',false);
// your code here
}
Самое простое решение - это просто отключить кнопки при загрузке страницы. Затем просто повторно включите их, как только пользователь щелкнет элемент в дереве:
$(document).ready(function() {
// ADDED
$('button').attr("disabled","disabled");
$('#tree').on("select_node.jstree", function (e, data) {
alert("node_children: " + data.node.children);
$('#tree').jstree(true).toggle_node(data.node);
// ADDED
$('button').removeAttr("disabled");
});