Нужно раскрывающееся меню, чтобы сохранить фокус (оставаться открытым), так как результаты в обновляемых данных обновляются (что убирает фокус) - PullRequest
0 голосов
/ 15 мая 2019

У меня есть раскрывающийся список jquery, который закрывается, потому что результаты в datatable обновляются.По мере обновления данных / добавления новых результатов фокус отвлекает внимание от выпадающего списка, в результате чего раскрывающийся список закрывается.Мне нужно, чтобы он оставался открытым.

Я рассмотрел stopPropogation (), но кажется, что было бы более элегантное и потенциально менее опасное решение

            <li id="links" class="dropdown">
                <a href="#" class="visible-xs visible-lg dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Links <span class="caret"></span></a>
                <a href="#" class="visible-sm visible-md dropdown-toggle glyphicon glyphicon-link" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="caret"></span></a>
                <ul class="dropdown-menu">
                    <li><a href="/log" target="_blank">Log</a></li>
                    <li><a href="/library" target="_blank">Library</a></li>
                    <li><a href="/documents" target="_blank">Documents</a></li>
                    <li><a href="/idl" target="_blank">IDL</a></li>
                    <li><a href="/plots" target="_blank">Plots</a></li>
                    <li role="separator" class="divider"></li>
                    <li><a href="/about" target="_blank">About</a></li>
                </ul>
            </li>

1 Ответ

0 голосов
/ 15 мая 2019

Я решил эту проблему, получив значение раскрывающегося класса, перед обновлением таблицы данных, а затем сбросив значение раскрывающегося списка до прежнего значения.

let initValue = $ ("# links"). Get (0) .className;

table.ajax.reload(function (json) {
// do things 
// after all tasks completed

 $("#links").addClass(initValue);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...