【问题标题】:jQuery off seems not working for images inside a dataTablejQuery off 似乎不适用于 dataTable 中的图像
【发布时间】:2020-02-03 05:59:11
【问题描述】:

我有一个数据表,在每一行中都有一个可点击的图标,弹出一条确认消息,如果点击确认按钮,下次点击该图标时不会出现任何消​​息。由于以编程方式填充行,因此每个图标都具有相同的 id 名称和类。代码如下所示

$('#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() 方法,但是在单击一个图标后,这使得表格中的所有图标都没有响应。我该如何解决这个问题?

【问题讨论】:

    标签: javascript jquery datatable confirm


    【解决方案1】:

    不确定 $(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!');
                    },
                }
            });
        });
    

    【讨论】:

    • 你说对了一部分。我已经修改了您的建议,将 $('#myTable tbody') 更改为 $('#myTable tbody img.sc'),现在一切正常。但我不知道确认函数中 $(this).off('click') 中的对象指向什么。不管怎样,现在没事了。
    猜你喜欢
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2013-10-28
    • 2013-04-23
    相关资源
    最近更新 更多