Javascript 确认&;警报未在我的Ajax成功函数中触发

Javascript 确认&;警报未在我的Ajax成功函数中触发,javascript,ajax,alert,confirm,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' :

我有一个函数,用于显示来自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;
            });
        },
    });
}
如果我在success函数中执行“console.log('something'),它会工作,但我无法执行警报或确认。问题是我在点击时有一个触发器,必须触发一个确认窗口。它系统地显示console.log“ko”,甚至不显示对话框

当然,我的控制台中没有错误,我也无法在Internet上找到解决方案,因为大多数情况下,这是Ajax返回错误的问题(不是成功)

你有什么想法吗

@这是console.log(结果)


利伯莱
定量
阿查特大奖赛
科夫。
大奖赛总计
玛吉
外部救济
3.
150,00 €
1.2
540,00 €
90,00 €
x
将其放入
$(文档).ready()中

在上面的代码中,写

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

我希望这会起作用

您在ajax
success
回调中附加了一个click处理程序-这没有什么意义。您实际想做什么?JQuery的
.on()
方法用于向元素注册事件处理程序,这样您的单击函数就不会在ajax请求的成功回调中执行。您可以尝试放置
控制台.log(结果)吗
success
函数中,并共享打印的内容?@Jamiec:我把我的点击处理程序放在这里,因为触发器在success(result)中抛出的表中。威尔.哈里斯:我试过使用just.click(),但它不太管用。@el_tomato:我可以,但它没有兴趣,它只是一个HTML表。我编辑了这个主题。OP说这个was元素是在ajax成功中动态加载的,这不会起作用!很好-你可以委托给
#外部利益小组
,这是OP加入新内容的地方,而不是
文档正文
。谢谢,也可以这样做。但是我更喜欢使用
document.body
,因为我将来可能会更改
id
class
我正在委派的任务。因此,这将停止我运行的代码,并大大降低它的运行速度;)
$(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");