Javascript jqueryajax没有';无法使用生成的标记

Javascript jqueryajax没有';无法使用生成的标记,javascript,jquery,bootstrap-popover,Javascript,Jquery,Bootstrap Popover,我们的应用程序中有一个搜索功能,当用户键入某个内容时,结果将根据过滤器生成并显示在页面上 以下是每次按下键后的动态结果: htmlResult = ` <li> <div> <img src='${user.avatar}' width='80' alt='${user.fullName}' /> </div> <a tabindex='0' class ='btn2'

我们的应用程序中有一个搜索功能,当用户键入某个内容时,结果将根据过滤器生成并显示在页面上

以下是每次按下键后的动态结果:

htmlResult = `
<li>
    <div>
        <img src='${user.avatar}' width='80' alt='${user.fullName}' />
    </div>
    <a tabindex='0'
        class ='btn2'
        data-html='true'
        data-toggle='popover'
        data-content="<div class='list-group'><a href='#' class='item' data-val1-value='0'>Val1</a></div>">add</a>
</li>
`;
此代码有两个问题:

  • 单击
    三次后将显示弹出窗口。项目
  • jqueryajax不会成功,它在控制台上显示
    400错误请求
    错误
PS:此代码适用于未生成的标记

有什么想法吗?

a)为了确保你的url是正确的, 1) 更新服务器端函数,使其不接受任何仅用于测试的参数 2) 使用数据调用ajax:NULL 3) 调试并查看是否达到服务器端功能

b) 如果未到达服务器端,请检查它是否是POST或GET in服务器端功能。 c) 如果您确定正确调用了服务器端函数,则可以删除不带stringfy的数据


这可能会有所帮助。

对于popover,您必须重新初始化动态内容附加到HTML中的所有内容。
对于Ajax 400,这是因为URL没有找到路由路径,请再次检查此请求的后端要求。

在上述代码中,URL设置为字符串“URL”,这似乎可以解释400错误。@Pango这实际上是一个URL,我不想将实际URL放在这里。很酷,只是检查一下。我认为你不想把你的参数串起来,只要传递参数就行了。
$("[data-toggle=popover]").popover();
$(document).on('click', '.btn2', function(event) {
    event.preventDefault();
    $(this).popover({ html: true });
});

$(document).on('click', '.item', function (event) {
    event.preventDefault();
    const value1 = $(this).attr('data-val1-value');

    const params = {
        value1: value1
    };
    $.ajax({
        type: "POST",
        url: endPoint,
        dataType: 'json',
        contentType: 'application/json',
        data: JSON.stringify(params),
        success: (result) => {
            // refresh
        }
    }); 
});