Изменить / получить состояние проверки CheckBox

Вы почти там. Используйте прием "самоканала" . Откройте канал, добавьте его к Вашему select() чтение и запись fd_set, запишите в него от основного потока для разблокирования рабочего потока. Это портативно через системы POSIX.

я видел вариант подобной техники для Windows в одной системе (на самом деле используемый вместе с методом выше, разделенный #ifdef WIN32). Разблокирование может быть достигнуто путем добавления, что макет (развязал) сокет дейтаграммы к fd_set и затем закрыв его. Оборотная сторона - то, что, конечно, необходимо вновь открыть его каждый раз.

Однако в вышеупомянутой системе, оба из этих методов используются скорее экономно, и для неожиданных событий (например, сигналы, запросы завершения). Предпочтительный метод является все еще переменным тайм-аутом к select(), в зависимости от того, как скоро что-то планируется для рабочего потока.

49
задан Jonathan Leffler 29 November 2011 в 12:25
поделиться

1 ответ

Вот быстрая реализация с образцами:

Флажок для проверки всех объектов:

<input id="btnSelectAll" type="checkbox">

Единственный объект (для строки таблицы):

<input class="single-item" name="item[]" type="checkbox">

Js кодируют для jQuery:

$(document).on('click', '#btnSelectAll', function(state) {
    if ($('#btnSelectAll').is(':checked')) {
        $('.single-item').prop('checked', true);
        $('.batch-erase').addClass('d-block');
    } else {
        $('.single-item').prop('checked', false);
        $('.batch-erase').removeClass('d-block');
    }
});

Пакет удаляют объект:

<div class="batch-erase d-none">
    <a href="/path/to/delete" class="btn btn-danger btn-sm">
        <i class="fe-trash"></i> Delete All
    </a>
</div>
0
ответ дан 7 November 2019 в 11:28
поделиться
Другие вопросы по тегам:

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