Почему jquery не отвечает соответственно моим условиям? - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу, чтобы у моих таблиц был класс «кликабельный», только если включен режим редактирования. С элементом осмотра я вижу, что это работает. Он успешно удаляет «кликабельный» класс, если я отключаю режим редактирования.

Если у строки таблицы есть кликабельный класс, он щелкает по ее флажку при щелчке строки таблицы.

Это тоже работает, однако, когда я отключаю режим редактирования, я все еще могу нажать и, также, установите флажок.
Если вы видите что-то, что я пропустил, пожалуйста, дайте мне знать.

    function clickableTableRow(isClickable) { 
        if (isClickable) {
            $(tableBody).find('tr').each(function () {
                $(this).addClass("clickable"); 
                $(this).click(function () {
                    $(this).find('input[type=checkbox]').click(); 
                });
            })
        } else {
            $(tableBody).find('tr').each(function () {
                $(this).removeClass("checked").removeClass("clickable");
                $(this).find('input[type=checkbox]').prop("checked", false);
            })
        }
    }

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

Ответы [ 2 ]

2 голосов
/ 05 февраля 2020

Использование .off ()

$(this).off('click');

Метод off() в jQuery используется для удаления обработчиков событий, связанных с on() метод - или .click() метод. Метод off() обеспечивает большую согласованность API и заменяет методы unbind(), die() и undelegate().

0 голосов
/ 05 февраля 2020

Обработчик событий все еще был активен, использование .off () отключает его.

Добавление этой строки кода в оператор else решило проблему:
$(this).off('click');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...