确认&警告不会在我的Ajax成功函数中触发

时间:2016-01-20 10:29:45

标签: javascript ajax alert confirm

我有一个显示Ajax请求表的函数:

function loadExternalBenefits() {
    var id_project = $('input[name=id_project]').val();
    $.ajax({
        url : '/projects/getExternalBenefits',
        method : 'POST',
        data : {'fk_project' : id_project, 'ajax' : true},
        success : function(result) {
            $('#panel-external-benefits').find('.right').first().html(result);

            $('.delete_external_benefits').on('click', function() {
                if(confirm("Voulez-vous vraiment supprimer cette ligne ?")) {
                    console.log('ok');
                    var id_item = $(this).data('id');
                    deleteExternalBenefits(id_item);
                } else {
                    console.log('ko');
                }
                return false;
            });
        },
    });
}

如果我在成功函数中执行“console.log('something')”,它可以正常工作,但我无法进行警报或确认。问题是我点击了一个必须触发确认窗口的触发器。它系统地显示console.log“ko”,甚至没有显示对话框。

当然,我的控制台没有错误,我在互联网上找不到解决方案,因为大多数时候,这是Ajax返回错误(不成功)的问题。

你有什么想法吗?

@el_tomato:这是console.log(结果)

<table class="classic-table">
    <thead>
        <tr>
            <th>Libellé</th>
            <th>Quantité</th>
            <th>Prix d'achat</th>
            <th>Coeff.</th>
            <th>Prix total</th>
            <th>Marge</th>            
            <th></th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Une prestation externe</td>
            <td class="align-center">3</td>
            <td class="price align-right">150,00 €</td>
            <td class="price align-right">1.2</td>
            <td class="price align-right">540,00 €</td>
            <td class="price align-right">90,00 €</td>
            <td><button class="delete_external_benefits delete" data-id="24">x</button></td>
        </tr>
     </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

将其放在$(document).ready()

$(document.body).on("click", ".delete_external_benefits", function(e) {
    if(confirm("Voulez-vous vraiment supprimer cette ligne ?")) {
        console.log('ok');
        var id_item = $(this).data('id');
        deleteExternalBenefits(id_item);
    } else {
        console.log('ko');
    }
    return false;
});

代替上面的代码,写下

$('.delete_external_benefits').trigger("click");

我希望这应该有用