laravel AJAX 函数不会在动态生成的按钮中调用

ssm49v7z  于 2023-01-31  发布在  其他
关注(0)|答案(3)|浏览(109)

这个循环在 AJAX 函数中生成HTML中的按钮。

for( var i = 0; i<len; i++){

                var d = new Date(response[i]['date']);
                dformat = [d.getDate() + '/' +
                        (d.getMonth()+1) + '/' +
                        d.getFullYear() + ' ' +
                        d.getHours() + ':' +
                        d.getMinutes()];

                console.log(response[i])

                var bons = "<tbody>" +
                "<th>" + response[i]['id'] + "</th>" +
                "<td>" + dformat + "</td>" +
                "<td>" + response[i]['poids'] + "</td>" +
                "<td>" + response[i]['origine'] + "</td>" +
                "<td>" + response[i]['type'] + "</td>" +
                "<td>" + response[i]['famille'] + "</td>"

                if(response[i]['localisation'] != "Expédié"){
                    bons = bons + "<td> <input class='evacuate' id='" + response[i]['id'] + "' type='button'" + "value='Evacuer'> </td>"
                }else{
                    bons = bons + "<td>" + response[i]['localisation'] + "</td>"
                }

                bons = bons + "</tr>" +
                    "</tbody>"

                $("#index").append(
                    bons
                );
            }

然后,我有另一个 AJAX 函数,使每个按钮以前生成的点击像:

$(".evacuate").on('click', function(){
        console.log("test des boutons")
    });

问题是,console.log没有显示,就好像这个函数从来没有被调用过一样。

ldioqlga

ldioqlga1#

试试这个:

$(document).on('click','.evacuate', function(){
   console.log("test des boutons")
});
yxyvkwin

yxyvkwin2#

您应该在页面上已经存在的元素上定义click事件。因此,对于您的情况,请选择父元素,然后添加click事件。例如,如果具有evacuate类的元素位于具有someclass类的元素内部,则可以执行以下操作:

$(".someclass").on('click', '.evacuate', function(){
    console.log("test des boutons")
});

根据您的代码,可以使用tbody标记作为父标记:

$("tbody").on('click', '.evacuate', function(){
    console.log("test des boutons")
});
gzszwxb4

gzszwxb43#

我真的不明白这是如何工作的,但感谢上面给出的答案,我设法显示我的console.log.

$(document.getElementsByName).on('click', '.evacuate', function(){
console.log("Test des boutons")

});

相关问题