首页 > 解决方案 > jQuery Ajax 不是一个函数

问题描述

我有一个表格,每一行看起来像这样:

<tr id="ID" class="company_row">...</tr>

还有一个模态:

<div id="company_list_modal"class="modal">
    <p>TEST</p>
</div>

单击表格行应该会打开一个模式,完成以下操作:

<script>
$(document).ready(function(){
    const modal = document.getElementById("company_list_modal");
    window.onclick = function(event) {
        if (event.target === modal) {
            modal.style.display = "none";
        };
    };

    $(".company_row").click(function() {
        $.ajax({
            url: "/company/company_info",
            data: {
                "company": $(this).attr('id'),
            },
            dataType: "json",
            success: function(data) {
                console.log(data);
                modal.style.display = "block";
            }
        });
    });
});

返回的错误:TypeError: undefined is not a function (near '...$.ajax...')

努力修复:

选择器绝对有效 - 我在 ajax 位之前添加了一个 console.log,它确认选择器和 .click 位都很好。(也确认 jQuery 确实已加载)。

已删除$(this).attr('id'),并将其替换为"test",以防引起问题:没有变化。

从函数中删除了对模态的所有引用success:没有变化

在 chrome 和 safari 中测试,都给出相同的结果

更新:

jQuery 包含(在 HTML 头中):<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>

console.log($.ajax)返回“未定义”

标签: javascriptjqueryajax

解决方案


您正在使用 jquery 的苗条版本,它不包括 $.ajax 方法。为了完成它,您将使用完整版。


推荐阅读