Модуль whois не работает в Python 3 даже после его импорта

Повторить мои попытки:

  1. Я не мог помешать самим DataTables регистрироваться в этом событии клика или хихикать, щелкнув.
  2. Я также не нашел API, где я мог бы его предотвратить.
  3. Сложный заголовок сначала выглядел как хорошее решение, пока я не понял, что он не работает с ColReorder.

Так что единственное метод, о котором я мог подумать, - сделать глубокий вдох и взломать сами DataTables:

function _fnSortAttachListener ( settings, attachTo, colIdx, callback )
{
    return;

Итак, я добавил, что оператор return в начало тела функции. Это предотвратит присоединение слушателя. Я оставил недоступный код ниже возврата, чтобы вызвать как можно меньшую модификацию. Проблемы с этой модификацией:

  1. Каждый раз, когда я обновляю DataTables, мне нужно повторить этот взлом.
  2. Мне также нужно выполнить взломанную версию с минимизацией: function Ka(a,b,c,d){return;var e=a.aoColumns[c];Ta(b ...
  3. Теперь, когда щелчок не работает, мне нужно прикрепить мои собственные слушатели и запрограммировать сортировку программно, если щелчок не был на элементе ввода.
    $('.dataTables_scrollHead thead th').on('click', function (e) {
        if ($(e.target).hasClass("yadcf-filter-reset-button") || $(e.target).hasClass("paramchk") || $(e.target).hasClass("paramsel") || $(e.target).is("option"))
            return;
        var colIdxStr = $(this).attr("data-column-index");
        var colIdx = parseInt(colIdxStr, 10);
        viewModel.sortColumn(colIdx, e.shiftKey);
    });
    

Вы видите здесь комбинацию фильтров или всплывающих окон yacdf («опция») или полей редактирования, отмеченных мной классом «paramsel» или флажками с пометкой «paramchk», класс будет получать событие click, и я не сортирую. Но в противном случае мне нужно программно сортировать. Следующий код даже пытается поддерживать сортировку нескольких столбцов, если нажата клавиша shift.

viewModel.sortColumn = function (colIdx, shiftPressed) {
    var order = viewModel.table.order();
    var direction = "";
    for (var i = 0; i < order.length; i++) {
        if (order[i][0] == colIdx) {
            direction = order[i][1];
            break;
        }
    }
    if (direction === "")
        direction = "desc";
    else if (direction === "desc")
        direction = "asc";
    else
        direction = "";
    if (shiftPressed) {
        order.push([colIdx, direction]);
        viewModel.table.order(order).draw();
    } else {
        viewModel.table.order([colIdx, direction]).draw();
    }
}

Еще одна необходимая деталь - это декорирование ячеек заголовка индексом столбца:

viewModel.table = $('#reportTable').DataTable({
    ...
    headerCallback: function (thead, data, start, end, display) {
        $(thead).find("th").each(function (thindex, thelement) {
            $(thelement).attr("data-column-index", thindex);
        });
    }
});

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

0
задан suyash999 16 January 2019 в 05:27
поделиться

1 ответ

Сначала проверьте, можете ли вы выполнить поиск whois вручную с помощью этой команды whois google.com, если есть какая-либо ошибка, вам придется сначала установить whois, используя sudo apt-get install whois

0
ответ дан Tamim 16 January 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: