jQuery выключено, кажется, не работает для изображений внутри таблицы данных - PullRequest
0 голосов
/ 03 февраля 2020

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

$('#myTable tbody').on( 'click', 'img.sc', function () {
    $.confirm({
    title: 'Confirm!',
    content: 'You will report an issue..',
    buttons: {
    confirm: function () {
             $(this).off('click' );
             //other stuff ..}
    cancel: function () {
             $.alert('Canceled!');
                      },
             }
     });
});

Этот код не работает, значок отображает сообщение при каждом нажатии. Я попытался также с методом one (), но после нажатия на значок, это привело к тому, что все иконки в таблице перестали отвечать. Как я могу это исправить?

1 Ответ

1 голос
/ 03 февраля 2020

Не уверен, что $ (this) ссылается на элемент здесь. Попробуйте следующее:

    $('#myTable tbody').on('click', 'img.sc', function() {
        let elem = $(this);
        $.confirm({
            title: 'Confirm!',
            content: 'You will report an issue..',
            buttons: {
                confirm: function() {
                    elem.off('click');
                    //other stuff ..
                },
                cancel: function() {
                    $.alert('Canceled!');
                },
            }
        });
    });
...