Как отключить кнопку до того, как какой-либо элемент выбран?

0

Можем ли мы отключить кнопки "Следующий" и "Предыдущий", пока пользователь не выберет любой элемент дерева.

Другими словами, пользователь должен выбрать один из элементов из древовидного представления, а затем выбрать следующую и предыдущую кнопку, но до этого они отключены?

В моем примере я использую 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')

});
  • 0
    ваша скрипка не отвечает, я просто щелкнул более 10 раз по всей странице .. но ничего не отвечает .. :(
Теги:
jstree

4 ответа

0
Лучший ответ

Вы можете использовать .prop(), чтобы отключить кнопки при загрузке страницы:

$('#next,#pre').prop('disabled',true);

и снова включите его, когда выбран ваш элемент:

$('#tree').on("select_node.jstree", function (e, data) { 
    $('#next,#pre').prop('disabled',false);

Обновленный скрипт

0

Попробуйте ниже код

Сначала установите 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

0

Вставьте следующее выражение внутри события готовности.

$('#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
}
0

обновленный jsfiddle

Самое простое решение - это просто отключить кнопки при загрузке страницы. Затем просто повторно включите их, как только пользователь щелкнет элемент в дереве:

$(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");  
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню